Http File upload - файлы размером более 25 Мб - скрипт загрузки PHP - PullRequest
2 голосов
/ 22 июня 2011

Я уже 20 часов бьюсь головой об этом, и я очень признателен за помощь!

Я упростил задачу, поэтому код очень прост.По сути, этот скрипт загрузки работает отлично, пока я не попытаюсь загрузить файл размером более 25 МБ, после чего произойдет сбой.PHP не выдаёт ошибок.

index.htm

<form enctype="multipart/form-data" action="upload.php" method="POST">
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

upload.php

<?php
$target_path = "uploaded/";
$target_path = $target_path.basename( $_FILES['uploadedfile']['name']); 
/***/highlight_string(print_r($_FILES, true)); //check array

if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ". basename($_FILES['uploadedfile']['name'])." has been uploaded";
} else {
    echo "There was an error uploading the file, please try again!";
}
?>

php.ini

[PHP]

post_max_size = 32M
upload_max_filesize = 32M

Мой хост сообщил мне, что ограничение загрузки на сервер составляет 32 МБ.Запустил phpinfo () и переменные в ini меняются.Это не проблема тайм-аута (при загрузке файла была запущена загрузка 16 МБ - это заняло несколько минут дольше, чем загрузка 25 МБ, но все еще работало).

Я выдвинул массив $ _Files как строку для ошибкипроверяю, вот что я получаю, когда он терпит неудачу:

Array
(
    [uploadedfile] => Array
        (
            [name] => 30.tif
            [type] => 
            [tmp_name] => 
            [error] => 7
            [size] => 0
        )

)
There was an error uploading the file, please try again!

Есть идеи?Пробовал на разных серверах с одной и той же проблемой.

Ответы [ 4 ]

0 голосов
/ 24 июня 2011

Спасибо всем, теперь я уверен, что это проблема хоста, а не проблема с моей стороны - хотя я пробовал это на нескольких хостах - я думаю, что довольно распространенным является ограничение на сообщение HTTP размером около 25 МБ .

Теперь я установил для своего загрузчика максимальный размер файла 20 МБ, что должно сделать его довольно безопасным на большинстве хостов.

0 голосов
/ 22 июня 2011

memory_limit также может ограничивать размер загружаемых файлов.

0 голосов
/ 22 июня 2011

Ваша ошибка не из-за размера, код ошибки 7 из-за того, что файл «невозможно сохранить на диске».

, чтобы прочитать больше ошибок: Загрузить код ошибки

Попробуйте изменить директиву upload_tmp_dir в файле php.ini и проверьте, разрешена ли загрузка файла: 'file_uploads = On'.

0 голосов
/ 22 июня 2011

Согласно этому не удалось записать файлы на диск.Можете ли вы проверить квоту / дисковое пространство / и т. Д.?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...