2014-10-16 4 views
0

Я очень новичок в php, но много работал с javascript и html раньше. Я размещаю сервер с apache на своем собственном компьютере только для тестирования php. Я установил php как cgi, и все сработало нормально. Я сделал некоторые испытания с PHP просто чтобы понять, как это работает, но когда я попытался сделать форму загрузки файла и прочитать файл с PHP:Не указан входной файл - php

//uploadFile.php 
<html> 
    <head> 
    </head> 
    <body> 
     <form action="uploadFile.php" id="form" method="POST" enctype="multipart/form-data"> 
      <input type="file" name="uploadFile"> 
      <input name="submit" value="upload" type="submit"> 
     </form> 

     <?php 
      echo $_FILES["uploadFile"]["name"]; 
     ?> 
    </body> 

</html> 

я вдруг получил сообщение:

Нет данных для ввода

Только это! Он даже не сказал, что это ошибка. Я пробовал этот очень простой php-скрипт, который работал до этого:

<?php 
echo "Working"; 
?> 

Но у меня все еще есть «Нет указанного входного файла». Каждый файл php, который я пытаюсь, дает мне эту ошибку, которая указывает, что проблема не в моем коде. Когда я пробовал обычный .html-файл без php, он работал. Я пробовал исследовать его, и это похоже на то, что хостинг на godaddy получает это сообщение, но я не нашел решения для меня.

Кто-нибудь знает решение или имеет какие-либо советы о том, как решить эту проблему.

+1

Мне нравится, когда люди меняют код после получения ответа. –

+0

Thats только потому, что я думал, что я достаточно ясен, и что вы поймете мою проблему, но вы этого не сделали, поэтому я изменяю, чтобы очистить вещи. – Istlemin

ответ

1

В соответствии с вашим originally posted code/question где вы изменили свой вопрос после того, как этот ответ был представлен:

PHP чувствителен к регистру, когда дело доходит до POST/файлы переменных или каких-либо переменных в этом отношении.

Вы name="uploadfile", а затем $_FILES["uploadFile"]

изменить его на $_FILES["uploadfile"]

F не то же самое, как f.

Или сохранить $_FILES["uploadFile"] и изменить name="uploadfile" на name="uploadFile".

В любом случае, они оба очень подходят в почтовом ящике.


Прочитайте руководство по загрузке файлов:


Edit: (пример)

Sidenote:

Убедитесь, что папка существует и имеет соответствующие права на запись. Возможно, вам придется настроить способ, которым является $uploads_dir = 'uploads';, в зависимости от того, откуда вы выполняете код.

<html> 
    <head> 
    </head> 
    <body> 
     <form action="" id="form" method="POST" enctype="multipart/form-data"> 
      <input type="file" name="uploadFile"> 
      <input name="submit" value="upload" type="submit"> 
     </form> 

<?php 
if(isset($_POST['submit'])){ 

$uploads_dir = 'uploads'; 
foreach ($_FILES["uploadFile"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["uploadFile"]["tmp_name"][$key]; 
     $name = $_FILES["uploadFile"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
    } 

} 

?> 
    </body> 

</html> 

"Когда я попробовал нормальный .html файл без PHP он работал."

Убедитесь, что код в моем ответе используется в качестве .php файла и не .html.

Вы также должны связаться со службой поддержки GoDaddy по этому вопросу и узнать, действительно ли PHP доступен для вас.


Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

+0

Но я все равно получаю то же сообщение для каждого php-файла. – Istlemin

+0

Поскольку вы используете все код внутри одного и того же файла, используйте 'isset()' around' echo $ _FILES ["uploadFile"] ["name"]; 'как в' if (isset ($ _ POST ['submit'])) {echo $ _FILES [ "uploadFile"] [ "имя"]; } '@Istlemin –

+0

@Istlemin Перезагрузить мой ответ, я сделал пример редактирования. Убедитесь, что папка существует и имеет права на запись. Возможно, вам придется настроить способ загрузки '$ uploads_dir = ',', в зависимости от того, откуда вы выполняете код. –

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