2017-02-21 2 views
1

Когда я запускаю код ниже он говоритПочему я не могу изменить имя входного файла в php?

"Примечание: Undefined индекс: uploadFile в C: \ XAMPP \ HTDOCS \ ImageTest \ processImage.php в строке 17"

Но когда я заменяю каждый экземпляр uploadFile с fileToUpload работает. Зачем?

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) {эхо ваш код здесь};' –

+0

Can вы публикуете результат var_dump ($ _ POST, $ _FILES); –

+0

echo var_dump ($ _ POST, $ _FILES); (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

"Примечание: Undefined индекс: uploadFile в C: \ XAMPP \ HTDOCS \ ImageTest \ processImage.php в строке 17"

Это означает, что файл не был отправлен, вы можете использовать isset, чтобы проверить, был ли файл прикреплен, в противном случае он выкинет уведомление:

+0

Да, так будет ли добавление uploadFile? Странно то, что когда все, что я меняю, является именем переменной, похоже, больше не привязывается. – user2350459

+0

Это не означает, что для загрузки файлов вы должны проверить, получает ли PHP имя, которое вы установили, я имею в виду, что ваш вход в файл HTML имеет такое же «имя», как вы ожидаете в PHP. – Ultrazz008

+0

Да, это то, чего я пытался добиться, когда я взял каждый файл uploadFile и заменил его на fileToUpload; Я думал, что, поскольку это просто имя переменной, оно все равно будет работать одинаково. Ошибка указывает, что он не получает имя. Я следил за этим руководством https://www.w3schools.com/php/php_file_upload.asp, которое использует fileToUpload; Я не уверен, почему я меняю имя переменной, потому что она больше не работает; нет ничего о имени fileToUpload правильно? – user2350459

Смежные вопросы