исключение при разборе данных, состоящих из нескольких частей формы

StackOverflow https://stackoverflow.com/questions/595744

  •  09-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь обработать загрузку файла и использую класс com.oreilly.servlet.multipart.MultiPartParser для анализа отправленных данных (в cos.jar).Однако, когда я вызываю конструктор для MultiPartParser, я получаю это исключение:

java.io.IOException: Corrupt form data: premature ending
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:166)
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:94)

Кто-нибудь видел это раньше?Из того, что я прочитал, это означает, что данные закончились до того, как нашли границу, которую искали.Как я могу исправить это?

Я использую cos.jar версии 1.0.

Спасибо!

Это было полезно?

Решение 2

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

Другие советы

http://www.servlets.com/cos/faq.html

Это указывает на наличие проблемы анализ запроса POST, отправленного клиентом.Причин может быть много проблема:

  • Клиент нажал кнопку ОСТАНОВКИ (на самом деле это не проблема, но это вызывает преждевременное завершение)
  • Ошибка в веб-форме
  • Ошибка в сервлете
  • Ошибка на веб-сервере
  • Ошибка в браузере
  • Ошибка в самой библиотеке com.oreilly.servlet

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

Во-первых, убедитесь, что ваш клиент не нажимает кнопку "СТОП".Затем проверьте, опубликована ли ваша проблема уже на ресурсе "Ошибки сервлета, о которых вам нужно знать о" на этом сайте.Если это не очень хорошо известно, тогда вы можете быть одним из первых, кто узнает об этом!И вы можете поделиться своим открытием с нами здесь!

Во-вторых, проверьте, работает ли загрузка, используя предоставленную upload.html форму и класс DemoRequestUploadServlet.java.Некоторые пользователи обнаружили ошибки в их форме , которые вызвали проблемы.Тестирование эта комбинация покажет, так ли это дело.Один пользователь, герцог снастей, нашли это исключение было вызвано перенаправление: Я переживал то же самое "преждевременный конец", что и Альберт Смит.Что я обнаружил, так это то, что проблема была изолирована от IE.5.0. Приложение, которое меня беспокоило, выполняло перенаправление после построения Многочастного запроса.Это выглядит так строительство прошло хорошо, за исключением I.E.5.0 браузер попытался выполнить запрос снова, и к тому времени ServletInputStream был пуст.Я изменил приложение, чтобы просто написать необходимый ответ вместо перенаправления.Эта проблема была замечена и исправлена, как описано в Tomcat 4.0 и Weblogic 6.1. Другие пользователи обнаружили ошибки в своем сервлете обработки где они вызывают request.getParameter() вместо MultipartRequest.getParameter() и некоторые серверы ошибочно считывают входные данные поток, когда их getParameter() вызывается, вызывая "неожиданное завершение части".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top