2017-02-21 88 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

相关问题