2017-02-21 84 views
1

當我運行下面的代碼,它說爲什麼我不能在php中更改輸入文件名?

「通知:未定義指數:uploadFile在C:\ XAMPP \ htdocs中\ ImageTest \ processImage.php 17行」

但是,當我更換使用fileToUpload的uploadFile的每個實例似乎都可以工作。爲什麼?

processImage.php

<!DOCTYPE html> 
<html> 
<head> 
    <title> hello world</title> 
</head 
<body> 
    <?php 
     echo ' hi'; 

     $servername="localhost"; 
     $username="root"; 
     $password=""; 
     $dbname="db_ImageTest"; 

     $conn=new mysqli($servername, $username, $password, $dbname); 

     echo $_FILES["uploadFile"]["name"]; 

     /* 
     echo $image; 

     $image_name=$_FILES['image']['name']; 
     $image_size=getimagesize($_FILES['image']['tmp_name']); 

     if($image_size==FALSE){ 
      echo 'failed'; 
     } 
     $query="INSERT INTO mytable(image, name) VALUES(' {$image}', '{$image_name}') 
     */ 
    ?> 
</body> 
</html> 

的index.php

<!DOCTYPE html> 
<html> 
<body> 

<form action="processImage.php" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="uploadFile" /> 
    <input type="submit" value="Upload Image" name="submit"/> 
</form> 

</body> 
</html> 
+0

當你加載html文件..表單中的文件沒有上傳,它試圖訪問它爲什麼會拋出警告,你可以解決'if($ _ POST){echo your code here};' –

+0

Can你發佈var_dump($ _ POST,$ _FILES)的結果; –

+0

echo var_dump($ _ POST,$ _FILES); (1){[「submit」] => string(12)「Upload Image」} array(1){[fileToUpload「] => array(5){[」name「] => string(9) 「pupil.png」[「type」] => string(9)「image/png」[「tmp_name」] => string(24)「C:\ xampp \ tmp \ phpEC09.tmp」[「error」] = > int(0)[「size」] => int(585)}} – user2350459

回答

2

「通知:未定義指數:uploadFile在C:\ XAMPP \ htdocs中\ ImageTest \ processImage.php上線17」

這意味着文件沒有被髮送,你可以使用isset來檢查文件是否被附加,否則會引起通知:

if (isset($_FILES['uploadFile'])) { 
    /** file is there, continue your uploading **/ 
    } 
+0

是的,那麼isset是否會附加uploadFile?奇怪的是,當我改變的是變量名時,它似乎不再被附加。 – user2350459

+0

對於文件上傳,您不應該檢查PHP是否接收您設置的名稱,我的意思是確保您的HTML文件輸入與您期望的PHP名稱相同。 – Ultrazz008

+0

是的,這就是當我拿走每一個uploadFile並用fileToUpload代替它時我試圖完成的;我認爲,因爲它只是一個變量名,它仍然可以工作。該錯誤表明它沒有收到該名稱。我按照這個指南https://www.w3schools.com/php/php_file_upload.asp,它使用fileToUpload;我不知道爲什麼我改變變量名稱使它不再起作用;有沒有關於名稱fileToUpload的權利? – user2350459

相關問題