2014-01-20 2 views
0

Я пытался загрузить файл на сервер, однако я получаю неопределенные ошибки индекса, как показано ниже:Undefined индекс аудио загрузки - WAMP

Notice: Undefined index: uploadFile in D:\test\getfile.php on line 7 
Notice: Undefined index: uploadFile in D:\test\getfile.php on line 8 

Это мой index.php:

<html> 
<head> 
    <title>File Upload Form</title> 
</head> 
<body> 
    This form allows you to upload a file to the server.<br> 
    <form action="getfile.php" method="post"><br> 
     Type (or select) Filename: <input type="file" name="uploadFile"> 
     <input type="submit" value="Upload File"> 
    </form> 
</body> 

И это getfile.php:

<html> 
<head> 
    <title>Process Uploaded File</title> 
</head> 
<body> 
    <?php 
     move_uploaded_file ($_FILES['uploadFile'] ['tmp_name'], 
       "../uploads/{$_FILES['uploadFile'] ['name']}") 
    ?> 
</body> 

Я принял его код с другого сайта. Это работает на их сервере.

Это в wamp.

+0

* Всегда * проверяйте, действительно ли ключ существует, например, с помощью. 'if (isset ($ _ FILES ['uploadFile'])) {}'. Также следует добавить, что я надеюсь, что вы отключили выполнение в '/ uploads /', или любой может просто загрузить оболочку PHP и взломать весь ваш сервер - получить код - получить ваши учетные данные БД - установить вирусы - получить пароли пользователей и т. Д. И т. Д. – h2ooooooo

+0

@ h2ooooooo Это просто тестирование. Я пытаюсь понять, почему он не работает. – Efekan

+0

Ok point1 rtfm http://www.php.net/manual/en/features.file-upload.php. Копирование кода в порядке, чтобы вы начали, но в итоге вы получаете тот же мусор, что и последний ленивый человек. Существует намного больше правильной загрузки файлов, которая находится в вашем коде. – RiggsFolly

ответ

0

Вам нужно добавить enctype='multipart/form-data' в вашей форме тега

<form action="getfile.php" method="post" enctype='multipart/form-data'> 

enctype атрибут определяет тип содержимого, используемый для отправки формы на сервер (когда значение метода является «пост»). Значением по умолчанию для этого атрибута является «application/x-www-form-urlencoded». Значение «multipart/form-data» должно использоваться в комбинации с элементом INPUT, type = «file».

в index.php:

<form action="getfile.php" method="post" enctype='multipart/form-data'><br> 
    Type (or select) Filename: <input type="file" name="uploadFile"> 
    <input type="submit" name="submit" value="Upload File"> 
</form> 

в getfile.php:

<?php 
if(isset($_POST['submit'])){ 
     print_r($_FILES['uploadFile']); 
     move_uploaded_file ($_FILES['uploadFile']['tmp_name'], "../uploads/{$_FILES['uploadFile']['name']}"); 
    } 
?> 
+0

Я добавил, что я все еще получаю ошибку. – Efekan

+0

@ キ ャ タ, я обновил свой ответ, пожалуйста, проверьте –

+0

Я пробовал это, чтобы не получить больше ошибок. Однако я не могу найти папку uploads. – Efekan

-2

Вы можете установить тип (или выберите) Имя файла: <input type="file" name="uploadFile">

имя = uploadFile

и попытаться загрузить $_FILES['uploadFile'] ['name'] ...

изменение [ 'имя'] к [ ''] uploadFile

и добавить ENCTYPE = 'многокомпонентные/форма-данные

+0

Так что я должен изменить $ _FILES ['uploadFile'] ['name'] too $ _FILES ['uploadFile'] ['uploadFile'] – Efekan

+0

посмотреть в вашей форме html в поле вы определяете 'name = uploadFile', а в вашем php-коде вы пытаетесь вызвать' name'. Изменить '$ _FILES ['uploadFile'] ['name']' to '$ _FILES ['uploadFile'] ['uploadFile']' – Ivan

+0

Это не работает – Efekan

0

Добавить enctype='multipart/form-data' к вашей декларации формы.

+0

Я добавил, что я все еще получаю ошибку. – Efekan

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