2013-09-26 61 views
5

這是我的錯誤:未定義指數在上載文件

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

如何擺脫它?

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> 

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

那不可能是整個文件。代碼只有15行,錯誤位於第21行和第23行。 – VladHQ

回答

5

試試這個

<?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

禁用警告。非常感謝,它工作正常。 –

+0

很高興我可以幫助.. :) –

0

拼寫錯誤:

<?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

**注意:未定義的索引:位於第21行的C:\ xampp \ htdocs \ Project \ Template1 \ users \ index.php中的文件** 仍然得到這個錯誤。 **第21行** $ name = $ _FILES ['file'] ['name']; –

+0

如果文件尚未上傳,則$ _FILES ['file']將不存在。因此,在使用它之前檢查isset($ _ FILES ['file']),或用@ – 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

檢查您的PHP代碼塊檢查是否按下了提交按鈕或者isset($_FILES['file'])。這應該消除你的錯誤。他們彈出,因爲$ _FILES ['文件']沒有按下提交按鈕之前填充。

6

確保您已設置形式屬性ENCTYPE = 「的multipart/form-data的」
此屬性可幫助您從用戶獲取文件。

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

1

確保您已設置形式屬性enctype="multipart/form-data"。 該屬性可幫助您從用戶獲取文件。

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

檢查file_uploads是在你的php.ini啓用

file_uploads = On 
+0

@thanksd你寫的是不正確的。我有一個很好的動機,因爲如果索引未定義上傳可能取決於$ _FILES是空的,因此,如果$ _FILES爲空可能取決於file.uploads在php.ini上被禁用 – fvlgnn

0

出現這種情況是由於文件的大小:

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

在php.ini文件中,你應該根據你的要求改變上面的代碼

...