Скрипт загрузки файлов не работает при перемещении в другую функцию

#php #file-upload

#php #загрузка файла

Вопрос:

У меня есть функция загрузки файлов PHP, которая работала отлично. По какой-то причине я запускаю функцию загрузки из другого места моего сайта. Это функция, отличная от той, которую я использовал для ее запуска. HTML работает просто отлично, но:

 $_FILES['uploadedfile']['name']
 

возвращает «null».

Что может быть не так?

вот код:

 if (isset($_POST['upload'])) {

    $target_path = "uploads/";

    $target_path = $target_path.basename($_FILES['uploadedfile']['name']); 

    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$target_path)) echo "ok";
    else echo "problem";
}

else {
    echo '<form enctype="multipart/form-data" method="POST">';
    echo '<input type="hidden" name="MAX_FILE_SIZE" value="100000" />';
    echo 'Choose a file to upload: <input name="uploadedfile" type="file" /><br />';
    echo '<input type="submit" name="upload" value="Upload File" />';
    echo '</form>'';
}
 

Ответ №1:

Не должно ли это быть

 $_FILES['uploadedfile']['name']
 

Обратите внимание на переменную в верхнем регистре.

Комментарии:

1. это на самом деле так! Я просто не нажимал кнопку shift, когда публиковал 🙂

2. @Mob: пожалуйста, нет, не используйте кавычки для переменных

3. @Mob Я попробовал echo $_FILES, но это не дало мне никакого результата. я попробую var_dump и дам вам знать.

4. @genesis Ah. Ошибка. Спасибо.

5. @gianniskpf Ок. Сделайте это var_dump($_FILES);

Ответ №2:

Если вы не уверены, просто используйте

 var_dump($var);
 

в данном случае,

 var_dump($_FILES['uploadedfile']);
 

или даже лучше

 var_dump($_FILES);
 

Комментарии:

1. если var_dump($FILES) по-прежнему возвращает null? в чем тогда может быть проблема? имеет ли значение точка запуска вообще?

2. @gianniskpf: у вас нет поля ввода файла или в вашей форме установлено неправильное шифрование

3. Это забавно! Раньше он работал абсолютно нормально! И я вообще с этим не связывался!

4. @gianniskpf: пожалуйста, отправьте форму, которую вы пытаетесь отправить здесь

5. хорошо, я сделал. я уверен, что сама форма не является проблемой! спасибо, кстати, за вашу помощь 😉

Ответ №3:

Я нашел, что было не так. На самом деле это была детская ошибка. Переместив скрипт загрузки в новую функцию, я случайно включил форму «multipart / form-data» в простую форму. Это привело к «путанице» кнопок отправки и оставило переменную $ _FILES null .

Я хотел бы поблагодарить людей, которые разместили сообщения в этой теме! Приветствия