Масивът $_FILES в PHP е празен

Опитвам се да кача файл чрез PHP скрипт, но масивът ми $_FILES винаги е празен? Моят запис на данни $_POST за елемента за въвеждане на файл HTML има името на файла... Просто не е създаден файл в моята локална система.

Проверих достъпа за запис до временната папка и го зададох изрично. Проверих phpinfo(), за да се уверя, че качването на файлове е разрешено, и те са.

Какво може да попречи на това? Дали mod_rewrite ще причини нещо?

Благодаря!


person Alexander Trauzzi    schedule 26.10.2009    source източник


Отговори (3)


Когато имате правилния enctype(<form method="post" enctype="multipart/form-data">), след това проверете променливата errno в $_FILES, има различни възможни причини за грешка. Обикновено MAX_FILE_SIZE е надвишен.

http://php.net/manual/en/features.file-upload.errors.php

От PHP 4.2.0 PHP връща подходящ код за грешка заедно с файловия масив. Кодът за грешка може да бъде намерен в сегмента за грешка на файловия масив, който се създава по време на качването на файла от PHP. С други думи, грешката може да бъде открита в $_FILES['userfile']['error'].

UPLOAD_ERR_OK Стойност: 0; Няма грешка, файлът е качен успешно.

UPLOAD_ERR_INI_SIZE Стойност: 1; Каченият файл надвишава директивата upload_max_filesize в php.ini.

UPLOAD_ERR_FORM_SIZE Стойност: 2; Каченият файл надвишава директивата MAX_FILE_SIZE, посочена в HTML формуляра.

и т.н.

person Vinko Vrsalovic    schedule 26.10.2009
comment
print_r($_FILES) води до array()... Така че, за съжаление, тези данни не са налични. Имам обаче enctype=multipart/form-data във формуляра си. - person Alexander Trauzzi; 27.10.2009
comment
Погледнах по-отблизо - странно на екран с по-ниска разделителна способност, за да стане още по-смешно - и в моя код имаше правописна грешка. Това е още по-иронично, като се има предвид, че някои от първите няколко решения, които намерих, докато разглеждах това, казаха, че внимавайте за правописни грешки. Така че...Просто казано...Има толкова много за подреждане тук, внимавайте за правописни грешки! Благодаря за всички ритници в гащите на всички :) - person Alexander Trauzzi; 27.10.2009

Дефинирате ли enctype във вашата форма?

<form method="post" enctype="multipart/form-data">

Няма да бъде качен файл, ако не го зададете.

person Damien MATHIEU    schedule 26.10.2009
comment
Да, отговарям на много стара тема, но точно това беше моята грешка и решение. - person Tom Collins; 03.04.2013

Формулярът има ли правилния енцип?

enctype="multipart/form-data"
person Ólafur Waage    schedule 26.10.2009