Я пробовал интернет в течение двух дней с этой проблемой, надеюсь, кто-то еще сталкивался с этим раньше. Я вижу много вопросов о SO о загрузке файлов и PHP, но моя проблема несколько отличается. Я надеюсь, что я просто пропущу что-то очень очевидное.
Похоже, что данные из моей формы никогда не доходят до сервера, потому что единственным параметром, заполненным массивом $ _FILES, является «имя».
Например, здесь есть vardump $ _FILES :
array(1) { ["gameimage"]=> array(1) { ["name"]=> string(15) "Donkey-kong.gif" } }
Нет кода ошибки , нет tmp_name и нет типа .
Вот несколько базовых HTML, с которыми я тестирую:
<form name="upload-image-form" enctype="multipart/form-data" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="file" name="gameimage" size="30" /> <input type="submit" value="Submit" /> </form>
Вот мои соответствующие настройки php.ini:
file_uploads = On upload_max_filesize = 2M max_file_uploads = 10 upload_tmp_dir is default, but I have tried with /tmp as well.
Запуск PHP 5.3.8
Мое подозрение заключается в том, что apache mod_rewrite или какой-то другой apache mod интерферируют.
Я полностью контролирую хост-машину, это микро-экземпляр, запущенный в AWS.
Любая помощь будет оценена!
Поправка № 1:
Я проверил с консоли браузера в Chrome и FF, что данные передаются по http должным образом. Мои тестовые файлы были очень маленькими, менее 10 КБ.
Поправка № 2:
Кажется, что кто-то другой, с тем же экземпляром AWS, сталкивается с одной и той же проблемой:
http://www.webmasterworld.com/php/4452298.htm
Кажется, что есть некоторые основные проблемы с этими версиями apache и linux.