2010-05-30 6 views
20

Почему файл может быть частично загружен?Почему файл может быть частично загружен?

Я улучшаю обработку ошибок в своем сценарии загрузки PHP-файлов и пытаюсь выяснить, как правильно обрабатывать UPLOAD_ERR_PARTIAL.

Должен ли я попросить пользователя снова попробовать загрузить файл или сообщить им, что существует более серьезная проблема, которая мешает им загружать возможно законный файл?

ответ

5

Почему файл может быть частично зарегистрирован загружен?

Это обычно вызвано отменой пользователем загрузки.

Должен ли я предложить пользователь попробовать загрузить файл еще раз, или я должен сообщить им, что есть более серьезная проблема, которая препятствует их загрузке возможно легитимного файла?

Вы должны попросить их повторить попытку, и если проблемы продолжаются, свяжитесь с владельцами сайта, включая как можно больше деталей.

+0

Как мы должны обрабатывать этот случай на стороне клиента с помощью JS и на стороне сервера с PHP? Я имею в виду, если пользователь начинает загрузку файла, а затем нажимает кнопку отмены на странице, пока файл все еще загружается, я могу вызвать '.abort()', как PHP получит информацию, которую пользователь отменил загрузить? – tonix

24

UPLOAD_ERR_PARTIAL предоставляется, когда граница mime не найдена после данных файла. Возможной причиной этого является то, что загрузка была отменена пользователем (нажата ESC и т. Д.).

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

+8

+1 для уточнения «когда граница мимени не найдена после данных файла» – Seb

+0

@Seb Всего + 1'd этого. У меня была аналогичная проблема, и эта небольшая заметка привлекла меня к источнику. :) –

+0

В моем случае я забыл ведущую '-' на последней (в данном случае следующей) границе. Извлеченный урок :-) – ninetwozero

2

Ну, загрузка файлов может быть прерван:

Из космоса в пункт назначения

прерывание соединения

файл Повреждение

Неправильное имя

Неправильный расширение

и т.д ...

Лучшее, что вы можете сделать, это проверить и защитить процесс загрузки с делает проверки перед фактически отправить файл на сервер ...

В первый раз я сделал скрипт загрузки файлов, я использовал 1 строку кода, теперь, тот же сценарий, кажется, как веб-страницы;)

редактируется (например, для управления расширение и размер файла):

если ((

($file_up["type"] == "image/gif") || 

($file_up["type"] == "image/jpeg") || 

($file_up["type"] == "image/jpg") || 

($file_up["type"] == "image/pjpeg") || 

($file_up["type"] == "image/bmp") || 

($file_up["type"] == "image/tiff") || 

($file_up["type"] == "image/png")) && 

($file_up["size"] < 1050000)) 

{ 

    code if all ok... 


} 
+2

неправильное расширение? появился пример? –

+0

humm ... да, просто представьте, что ваш вход должен работать только с картинками, а пользователь пытается загрузить документ, если он должен быть только изображениями, вы должны отказаться от любых других расширений файлов (см. Мой ответ под комментарием редактирования ... – Zuul

+3

Вопрос в том, как имя файла/расширение вызывает UPLOAD_ERR_PARTIAL? – webbiedave

8

Это старый пост, но у меня была случайная проблема UPLOAD_ERR_PARTIAL, и после моего решения.

Проблема в том, что после загрузки 2/3 я получил ошибку UPLOAD_ERR_PARTIAL, без каких-либо прерываний со стороны клиента.

Моя проблема была связана с сервером Keep-Alive.

Я решил его, вставив в конце PHP скрипт для загрузки

header ("Connection: close"); 

, что силы закрытия соединения. Это решило мою проблему.

Я надеюсь, что кто-то может помочь.

Благодаря этому LINK

+1

Работал для меня! Я часами считал, что мой скрипт терпит неудачу/flakey, кажется, что это сервер. – Treemonkey

+0

@Treemonkey счастлив быть полезным ;-) –

+0

Дублированный здесь: http://stackoverflow.com/questions/12425394/post-data-is-missing-when-posting-the-same-data-in-rapid-sequence –

1

это может помочь некоторым людям, но у меня была та же проблема. Мое решение было удалить libapache2-Mod-php5filter и заменить его с классическим libapache2-мод-php5

+1

Спасибо! Ничто другое не сработало для меня. Это было! –

0

У меня есть та же проблема и была связана с пакета libapache2-мод-php5filter, я извлекаю р и проблемы конца. Надеюсь, кто-то может помочь.

+1

@yellowantphil выглядит как пограничный ответ мне –

Смежные вопросы