Загрузка доходит до 5%, затем сбрасывается до 0%

У меня проблемы с Fine-uploader. С меньшими файлами (~20MB) все отлично. Однако с файлами большего размера (100 МБ+) файлы загружаются примерно до 5%, а затем индикатор выполнения сбрасывается до 0%.

В конечном итоге загрузка завершается с ошибкой «Ошибка при попытке проанализировать текст ответа xhr (SyntaxError: Неожиданный конец ввода)».

В моей конечной точке (upload.php) самая последняя строка — «echo json_encode($result);». $result — это массив, и вот соответствующий PHP:

if (move_uploaded_file($file['tmp_name'], $target)){
    $result = array('success'=> true);
    $result['uploadName'] = $file['name'];
} else {
    $result = array('error'=> "Upload failed");
}
header("Content-Type: text/plain");
echo json_encode($result);

Это проблема с upload.php или что-то странное происходит с Fine-uploader?


person tlongren    schedule 13.04.2013    source источник
comment
вы можете проверить свой файл php.ini, так как я считаю, что 50 МБ — это ограничение для загрузки по умолчанию. Если вы хотите увеличить его, вам придется изменить файл php.ini.   -  person 1337holiday    schedule 14.04.2013
comment
вы проверяли $file['error'] на наличие ненулевых значений?   -  person Marc B    schedule 14.04.2013
comment
Я установил ограничения загрузки для php до 350 МБ в файле phprc на моем сервере DreamHost. Не проверял $file['error'], скоро проверю и сообщу.   -  person tlongren    schedule 14.04.2013


Ответы (2)


Это признак ошибки в вашем серверном коде вашей серверной среды. Наверняка есть ошибка, возвращенная вашим сервером. Об этом будет сообщено в консоли javascript. Пожалуйста, посмотрите.

person Ray Nicholus    schedule 14.04.2013
comment
Я тоже так думал, но консоль бесполезна. Я разместил содержимое здесь: суть с содержимым консоли Я не уверен, что может происходить на на стороне сервера, что приведет к тому, что Fine-uploader сообщит о загрузке от 5% до 0%. И он сделает это 3 или 4 раза, прежде чем загрузка, наконец, завершится ошибкой. - person tlongren; 14.04.2013
comment
Я думаю, вы забыли включить ссылку на суть. - person Ray Nicholus; 14.04.2013
comment
Текстовая суть с содержимым консоли была связана. https://gist.github.com/tlongren/5381192 Приятно видеть, что вы сохраняете такой закрыть глаза на этот прекрасный тег загрузчика. :) - person tlongren; 14.04.2013
comment
Сообщение об ошибке консоли javascript предполагает, что ваш сервер возвращает ответ, который не является допустимым JSON. Скорее всего, код вашего сервера делает что-то неожиданное, и результирующая ошибка попадает в ответ. Я мало что могу сделать, кроме как сказать вам, чтобы вы выяснили, где ваш сервер не может правильно обработать запрос. Что вы видите, когда смотрите на ответ на вкладке сети Chrome или Firebug? - person Ray Nicholus; 14.04.2013
comment
На вкладке «Сеть» больше ничего не отображается, только то, что запрос к моей конечной точке занял 1,5 минуты. Но спасибо, что подтвердили, что это проблема на стороне сервера. Это как минимум сужает возможности. - person tlongren; 14.04.2013
comment
К сожалению, в случае сбоя загрузки нет ответа. Ответ хороший, когда загрузка прошла успешно. - person tlongren; 14.04.2013

Оказывается, эта проблема была вызвана CloudFlare.

Я добавил пользовательское правило страницы для всего каталога, содержащего мои материалы для загрузки, но, похоже, это не помогло. Правило страницы по существу отключило все материалы CloudFlare для этой папки и всего в ней (если только я не понимаю функциональность правил страницы).

Однако приостановка CloudFlare в домене, похоже, решила проблему. Загрузка больших файлов заработала после приостановки CloudFlare.

Сотрудник CloudFlare упомянул здесь.

person tlongren    schedule 14.04.2013