Какой код состояния HTTP следует использовать для UPLOAD_ERR_PARTIAL?

Я разрабатываю REST API и у меня есть загрузки файлов :

PHP может генерировать UPLOAD_ERR_PARTIAL ошибка, когда файл был загружен только частично, и я не уверен, какой код состояния HTTP следует использовать в этом случае.

Обычно это происходит, если пользователь отменяет загрузку (см. Почему файл может быть загружен только частично и ошибки загрузки файла на php.net)

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


В этом случае вы должны использовать код состояния 409.

Согласно http://www.ietf.org/rfc/rfc2616.txt:

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Этот код разрешен только в ситуациях, когда
ожидается, что пользователь сможет разрешить конфликт
и повторно отправить запрос. Тело ответа ДОЛЖНО включать в себя достаточно
информации, чтобы пользователь мог распознать источник конфликта.
В идеале, объект ответа должен включать достаточно информации, чтобы пользователь или пользовательский агент мог решить проблему; однако это может быть невозможно
и не обязательно.


9

Если загрузка пользователя не удалась из-за того, что что-то не так с тем, что он загружает, просто скажите: 400 Bad Request

Улучшите этот ответ
ответил 14 августа 2013 г. в 14:58
добавить комментарий |

Если загрузка пользователя не удалась из-за того, что что-то не так с тем, что он загружает, просто скажите: 400 Bad Request


4

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

Улучшите этот ответ
ответил 28 авг., 12:52
  • 1
    Это хороший ответ, в этом случае клиент никогда не получит код состояния, поэтому вы можете просто выполнить exit (); — Пьер 3 сен 2013 в 14:15
добавить комментарий |

Вам не нужно отправлять код статуса, потому что клиент уже отключился.


2

Я бы выбрал либо 422 (запрос не может быть выполнен из-за семантических ошибок), либо 449 (запрос следует повторить после выполнения действия).

Взгляните на httpstatuses.com.

Улучшите этот ответ
отредактировано 14 ноября 2015 г. в 23:33
GEOCHET
20.5k1515 золотых знаков7171 серебряных знаков9797 бронзовых знаков
ответил 19 августа 2013 в 13:50
добавить комментарий |

Я бы выбрал либо 422 (запрос невозможно выполнить из-за семантических ошибок), либо 449 (запрос следует повторить после выполнения действия) .

Взгляните на httpstatuses.com.


1

UPLOAD_ERR_PARTIAL задается , когда граница mime не найдена после данных файла .

411 Требуется длина

В запросе не указана длина его содержимого, которая требуется запрошенный ресурс

Улучшить этот ответ
ответил 03 сен. ’13 в 18:58
добавить комментарий |

UPLOAD_ERR_PARTIAL дается , когда граница mime не найдена после данных файла .

411 Требуется длина

В запросе не указана длина его содержимого, которая требуется запрошенный ресурс


0

я думаю, что заголовок должен основываться на контексте ошибки:

если загрузка файла недопустимого типа:

  • HTTP_415 = ‘Unsupported Media Type’

если загружаемый файл слишком большой:

  • HTTP_413 = ‘Request Entity Too Large’

если на сервере возникла проблема с загрузкой:

  • HTTP_500 = ‘Internal Server Error’

если загрузка время ожидания:

  • HTTP_504 = ‘Gateway Timeout’

но в целом я бы сказал, что 500 довольно стандартен.

Улучшите этот ответ
ответил 14 августа ’13 в 19:50
  • Я знаю все это и Я уже занимаюсь всем этим , я специально спрашиваю о случае UPLOAD_ERR_PARTIAL — pconcepcion 16 авг., 13:06
  • ошибка 415 возникает, если загруженный файл имеет недопустимый тип. Он используется, когда вы используете недопустимый заголовок Content-Type . Также ошибки 5xx используются для обозначения ошибки на стороне сервера — но это ошибка клиента. — Заффи 03 сен. ’13 в 16:42
добавить комментарий |

я думаю, что заголовок должен быть основан на контексте ошибки:

если загрузка файла не разрешена тип:

  • HTTP_415 = ‘Unsupported Media Type’

, если загружаемый файл слишком велик:

  • HTTP_413 = ‘Request Entity Too Large’

, если на сервере возникла проблема с загрузкой:

  • HTTP_500 = ‘Внутренняя ошибка сервера’

, если время загрузки истекло:

  • HTTP_504 = ‘Тайм-аут шлюза’

но в целом я бы сказал, что 500 довольно стандартен.


-1

Я бы использовал

408 Тайм-аут запроса. Поскольку это указывает на то, что запрос был отправлен только частично (что не поддерживается в данном случае)

400 Плохой запрос выглядит как другой вариант.

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

Но куда вы отправите ответ, если запрос отменен?

Улучшите этот ответ
ответил 28 августа 2013 в 13:21
комментировать |

Я бы использовал

408 Тайм-аут запроса. Поскольку это указывает на то, что запрос был отправлен только частично (что не поддерживается в данном случае)

400 Плохой запрос выглядит как другой вариант.

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

Но куда вы отправите ответ, если запрос был отменен?



Ошибка HTTP HTTP на изображении, jpg, png , загрузка PDF

Ошибка загрузки файла

Количество ответов: 13

Доброе утро,

Я использую Moodle 3.5.2+ (сборка: 20181023) и у меня возникли проблемы с загрузкой файлов с использованием собственных инструментов moodle в течение нескольких дней, либо путем добавления файлового ресурса с помощью кнопки добавления файла, где, когда я вижу, что он загружен до 100%, браузер остается в бесконечном цикле (я проверил Chrome и Mozilla). (См. Изображение 1)

Если я использую опцию «Вы можете перетаскивать сюда файлы, чтобы добавить их», то я вижу, как они загружать файлы pdf, но затем они удаляются, автоматически появляется сообщение об ошибке при подключении к серверу. С другими файлами еще пару дней назад тоже были проблемы, но теперь только с PDF. Это очень редко, потому что я могу загрузить txt, doc или jpg. (См. Изображение 2)

При загрузке файлов PDF с опцией Drag & Drop оказывается, что при загрузке он удаляется и появляется ошибка появляется сообщение «ошибка подключения к серверу». См. Изображение 3

Как учитель я решил эту проблему, загрузив файлы в репозиторий, который у меня есть в Moodledata, по FTP, а затем я могу добавить их в курс без проблем.

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

У меня возникли эти проблемы с момента последних обновлений Moodle, у меня их раньше не было.

Я ценю любое предложение или помощь,

Спасибо.

ИЗОБРАЖЕНИЕ 1

ИЗОБРАЖЕНИЕ 2:

ИЗОБРАЖЕНИЕ 3:

Среднее значение оценок: —
Постоянная ссылка

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Скорее всего, это ошибка разрешений на сервере. Проверьте права доступа к папке для moodledata папку и убедитесь, что владелец правильный.

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Эмме Ричардсон

Re: ошибка загрузки файла

В параметрах post_max _size и pload_max_filesize, у меня 512 M столько же, сколько локальное значение и главное значение.

Файл размером 31 КБ загружает его без проблем, но файл 173, когда я пытаюсь загрузить его с помощью селектора файлов, остается в цикл и загрузка никогда не заканчивается, но когда я загружаю его с помощью метода перетаскивания, когда кажется, что весь файл был загружен, и я даже вижу, что он написан, но вскоре файл исчезает и появляется сообщение об ошибке «подключение к серверу · Появляется «.

Понятно, что файлы размером 31кб загружаются без проблем, а файлы размером 173 и более выдают ошибку. Однако в информации о PHP говорится, что вы можете загружать файлы размером до 512 М. Где могла быть ошибка?

Переведено с www.DeepL.com/Translator

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Эмме Ричардсон

Re: ошибка загрузки файла

Я думаю, что ответ здесь:
https://mediatemple.net/community/products/dv/204405524/ resolve-fastcgi-issues

Они говорят, что мне нужно изменить этот файл fcgid.conf, но у меня есть moodle на общем хостинге, и я не знаю, как изменить этот файл. Но я обращаюсь в сопорт, и они не знают, как решить проблему. Это раздражает.

Кажется, мне придется выполнить следующие шаги:

  1. Отредактируйте файл конфигурации FastCGI, расположенный в:
     /etc/httpd/conf.d/fcgid. conf  
  2. Добавьте эту строку в свой файл конфигурации (чуть ниже всех других строк, начинающихся с ‘Fcgid’):
      FcgidMaxRequestLen 1073741824  
  3. Перезапустите службу веб-сервера Apache с помощью этой команды:
      перезапуск службы httpd  

У меня аналогичная проблема с wordpress, я читал этот пост и думаю, что это может быть решением:
https://www. otreva.com/blog/wordpress-http-error-on-image-jpg-png-pdf-uploads/

Вам знакома вышеуказанная ошибка? Вероятно, этого не происходит при загрузке файлов размером менее 128 КБ, верно?

Если вы поискали и не нашли ответ, читайте дальше.

используете Apache и установите PHP для работы как FastCGI, вероятно, это ваше решение. Информация ниже предназначена специально для пользователей Centos Plesk. FcgidMaxRequestLen -> Это ваша проблема. Перед обновлением до последней версии по умолчанию было установлено значение 1 ГБ. Теперь это 128 КБ.

Быстрое исправление, если вы разбираетесь в командной строке:

  1. SSH на ваш сервер
  2. Используйте предпочтительный редактор (nano или vi), чтобы отредактировать следующий файл
    1
    /etc/httpd/conf.d/fcgid.conf
  3. Вставьте следующее непосредственно перед заключительный закрывающий тег
    1
    FcgidMaxRequestLen 1073741824
  4. Не забудьте перезапустить apache, чтобы изменения вступили в силу
1
/etc/init.d/httpd restart

Теперь у вас не должно возникнуть проблем с новыми загрузками в WordPress.

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Вы когда-нибудь получали решение своей проблемы?

Я столкнулся с той же проблемой.

Я сам размещаюсь на AWS. Странно то, что у меня 2 сайта и отдельная инфраструктура, и у одного есть эта проблема, а у другого — нет.

Я заметил, что когда я использовал загрузку формы с файлом размером ~ 50 мегабайт, он достигнет примерно 50 %, а затем сообщение в строке состояния браузера изменится с процента выполнения на «разрешение хоста», а затем процент начнется заново.

Если я использую метод перетаскивания, я получаю тот же результат, что и Франциско принято к сведению.

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Скорее всего, ошибка разрешений на сервере. Проверьте права доступа к папке moodledata и убедитесь, что владелец правильный.

Среднее значение оценок: Полезно (1)
Постоянная ссылка Показать родительский

В ответ Эмме Ричардсон

Re: file ошибка загрузки

Спасибо за ваш ответ.

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

Среднее значение оценок: —
Постоянная ссылка Показать родительский

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

На том же сервере у меня есть WordPress и когда Я загружаю сюда те же файлы PDF, которые вызывают проблемы в Moodle, также не загружаю следующее сообщение: Ошибка HTTP.

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

Есть идеи?

Спасибо.

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Привет, Франциско,

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

Если вы не используете тему Boost, тогда измените ее СЕЙЧАС и посмотрите, работает ли она для вас лучше, поскольку
BOOST — это тема DEFAULT в Moodle, которая очень актуальна .

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

ВЫ также можете очистить кеш браузера, так как это может вызывать неправильное отображение ошибок, хотя на самом деле система может быть в порядке?

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

Если вы не используете BOOST, попробуйте! Вполне может быть ответом на ваши молитвы !!!

Надеюсь, это хоть как-то поможет?

Мэри

Среднее значение оценок: Полезно (1)
Постоянная ссылка Показать родителя

В ответ Мэри Эванс

Re: ошибка загрузки файла

Большое спасибо за ваш ответ. Я использую Essential Theme, я переключился на Boost, проверяю задания CRON, очищаю кеш, и проблемы не исчезают. Я могу загружать только файлы размером менее 128 КБ.

На том же хостинге у меня также установлена ​​установка WordPress, и у меня такая же проблема, я не могу загружать файлы размером более 128 КБ.

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

Среднее значение оценок: —
Постоянная ссылка Показать родительский

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Я проводил тесты и знаю, почему невозможно загрузить файлы размером более 128 КБ. Я выполнил новую установку Moodle и WordPress, и загрузка файлов прошла отлично, я говорю, что это сработало, потому что Я заметил, что Интернет выглядел как небезопасный сайт. Затем я попросил сервер активировать https, так как в установках были проблемы, мне сказали, что это не имеет ничего общего, кроме как активировать сайты как безопасные и с той же проблемой, он не может загружать файлы размером более 128 КБ.

Конечно, мне не нравится решение перехода от https к простому http.

Сторонники не знают, как решить эту проблему, и я тоже не знаю, и поскольку это аренда сервера, я думаю о переходе в другую компанию.

Среднее значение оценок: —
Permalink Show parent

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Привет, Франциско,

Есть ли у вас доступ к серверу в вашей панели управления?

В памяти есть некоторые настройки, которые управляют размером загрузки и загрузки.

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

Я быстро посмотрю, где все эти варианты возможно.

Я вернусь как можно скорее.

Ура

Мэри

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Вот несколько полезных советов от Moodle о том, как решить возникшую проблему/проблемы.

https://docs.moodle. org/35/ru/File_upload_size # Upload_file_size_restrictions

Надеюсь, это поможет?

Мэри

Среднее значение оценок: —
Постоянная ссылка Показать родителя

В ответ Франсиско Гомесу

Re: ошибка загрузки файла

Привет, Франциско,

Если вы являетесь администратором своего сайта Moodle, то установили ли вы следующие настройки в:

 Администрирование сайта> БЕЗОПАСНОСТЬ> НАСТРОЙКИ БЕЗОПАСНОСТИ САЙТА -> M  Максимальный размер загружаемого файла  

Мэри

Среднее значение оценок: —
Постоянная ссылка Показать родителя
Оцените статью
logicle.ru
Добавить комментарий