2013-09-26 52 views
5

Đây là lỗi của tôi:Undefined Index trong khi tải lên tập tin

Notice: Undefined index: file in C:\xampp\htdocs\Project\Template1\users\index.php on line 21 Notice: Undefined index: file in C:\xampp\htdocs\Project\Template1\users\index.php on line 23 please uploaded

Làm thế nào để thoát khỏi nó?

Mã Html:

<form action="index.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="file" id="file"><br><br> 
<input type="submit" value="submit" name="submit"> 
</form> 

Mã Php:

<?php 

    $name = $_FILES['file']['name']; 
    $temp_name = $_FILES['file']['temp_name']; 

    if (isset($name)) { 

     if (!empty($name)) { 
      $location = '../uploads/'; 
     } 

     if (move_uploaded_file($temp_name, $location.$name)) { 
      echo 'uploaded'; 
     } 

    } else { 
     echo 'please uploaded'; 
    } 
?> 
+2

Không thể là toàn bộ tệp. Mã chỉ có 15 dòng và lỗi nằm trên dòng 21 và 23. – VladHQ

Trả lời

5

Hãy thử điều này

<?php 
if(isset($_POST['submit'])){ 
    $name  = $_FILES['file']['name']; 
    $temp_name = $_FILES['file']['tmp_name']; 
    if(isset($name)){ 
     if(!empty($name)){  
      $location = '../uploads/';  
      if(move_uploaded_file($temp_name, $location.$name)){ 
       echo 'File uploaded successfully'; 
      } 
     }  
    } else { 
     echo 'You should select a file to upload !!'; 
    } 
} 
?> 
+0

Cảm ơn rất nhiều, nó làm việc. –

+0

Vui vì tôi có thể giúp .. :) –

0

Spelling sai lầm:

<?php 
$name = $_FILES['file']['name']; 

$temp_name = $_FILES['file']['tmp_name']; // tmp_name 

if(isset($name)){ 
if(!empty($name)){ 

$location = '../uploads/'; 
} 
if(move_uploaded_file($temp_name, $location.$name)){ 
echo 'uploaded'; 
} 
} else { 
echo 'please uploaded'; 
} 
?> 
+0

** Thông báo: Chỉ mục không xác định: tệp trong C: \ xampp \ htdocs \ Project \ Template1 \ users \ index.php trên dòng 21 ** vẫn còn nhận được lỗi này. ** Dòng 21 ** $ name = $ _FILES ['tệp'] ['tên']; –

+0

Nếu tệp chưa được tải lên thì $ _FILES ['tệp'] sẽ không tồn tại. Vì vậy, kiểm tra isset ($ _ FILES ['file']) trước khi bạn sử dụng nó, hoặc ngăn chặn các cảnh báo với @ – EJTH

0
$upload_dir="../uploads"; 
$target_file=""; 
$tmp_file=""; 
if(isset($_POST['submit'])) 
{ 

     $tmp_file=$_FILES['file']['tmp_name']; 
     $target_file=basename($_FILES['file']['name']); 
      if(move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) 
     { 
     echo "File uploaded <br />"; 

     } 
     else { 
       echo "Something went Wrong !!<br/>"; 
      } 
} 
0

Thực hiện kiểm tra xung quanh khối mã PHP của bạn kiểm tra xem nút gửi có được nhấn hay không hoặc nếu isset($_FILES['file']). Điều này sẽ xóa lỗi của bạn. Chúng xuất hiện vì $ _FILES ['file'] không được điền trước khi nhấn nút gửi.

6

Hãy chắc chắn rằng bạn đã cài dạng thuộc tínhenctype = "multipart/form-data".
Thuộc tính này giúp bạn nhận tệp từ người dùng.

<form action="PATH" method="get/post" enctype="multipart/form-data"></form>

1

Hãy chắc chắn rằng bạn đã thiết lập hình thức thuộc tính enctype="multipart/form-data". Thuộc tính này giúp bạn nhận tệp từ người dùng.

<form action="#" method="get/post" enctype="multipart/form-data"> 
</form> 
-1

Kiểm tra nếu file_uploads được kích hoạt trên php.ini của bạn

file_uploads = On 
+0

@thanksd những gì bạn đã viết không chính xác. Tôi có động lực tốt vì nếu chỉ mục không xác định khi tải lên có thể phụ thuộc $ _FILES trống, và do đó, nếu $ _FILES trống thì có thể phụ thuộc vào file_uploads bị tắt trên php.ini – fvlgnn

0

điều này xảy ra do kích thước của tập tin:

max_execution_time = 300
max_input_time = 240
post_max_size = 128M upload_max_filesize = 128M

trong tệp php.ini của bạn, bạn nên thay đổi mã trên theo yêu cầu của bạn ...

Các vấn đề liên quan