Проблема загрузки файла PHP на SUSE
У меня странная проблема с загрузкой файлов с помощью Apache/PHP 5.3 на SLES 11 SP2. Когда я пытаюсь загрузить файл, PHP выбирает только оригинальное имя файла ($_FILES['name']
), а не все другие переменные мне нужны.
Я проверил и дважды проверял мой php.ini
оба для загрузки максимального файла, положить максимальный размер, загрузка файла включена и т. д.
У кого-нибудь есть идея, что происходит?
Вот скрипт, который я использовал для его тестирования:
<?php
if(isset($_FILES)) {
var_dump($_FILES);
}
?>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="/" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
И вот что я получаю:
array(1) { ["userfile"]=> array(1) { ["name"]=> string(8) "test.txt" } }
3 ответа
У меня была проблема с $_FILES. Он не загружал никаких файлов.
Я обновил php компоненты с 5.3.8-0.19.6 до 5.3.8-0.33.2 и работал...
У нас была та же проблема с загрузкой PHP в SLES 11 SP2. В нашем случае /tmp
предел папок был максимальным.
Пытаться df -h
Команда, чтобы увидеть, если вам нужна чистка.
Может быть проблема записи записанного файла в каталог tmp. Что значит upload_tmp_dir
скажем в phpinfo()
?
РЕДАКТИРОВАТЬ:
Я не вижу значения для upload_tmp_dir
, По умолчанию это может быть /tmp, но я бы явно установил его в /tmp в php.ini и проверил, правильно ли вы установили разрешения. настройка error_reporting
в сочетании с просмотром журналов Apache может помочь в устранении неполадок. Поскольку у вас нет доступа к серверу, вы можете попробовать это прямо в вашем PHP-скрипте:
ini_set('upload_tmp_dir', '/tmp')
error_reporting(E_ALL);
ini_set('display_errors', '1');