RESOLVED - пожалуйста см EDIT комментарий нижеJava 8 Spark: недостающее содержание для многочастного запроса
Я следующий the guide из Java искры о том, как загрузить файл с помощью запроса поста.
Моя загрузка заголовка запроса и тела:
Content Type: multipart/form-data; boundary=zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz
body: --zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz
Content-Disposition: form-data; name="file"; filename="test_file"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
some text
--zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz--
Использование рамки Спарк Java»У меня есть следующий код:
Spark.before((request, response) -> {
MultipartConfigElement multipartConfigElement = new MultipartConfigElement("/tmp");
request.raw().setAttribute("org.eclipse.multipartConfig", multipartConfigElement);
System.out.println(request.raw().getPart("file"));
});
Однако, когда я пытаюсь запустить пример. Я получаю следующее исключение:
[qtp244774599-29] ERROR spark.webserver.MatcherFilter -
java.io.IOException: Missing content for multipart request
at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:480)
at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:402)
at org.eclipse.jetty.server.Request.getPart(Request.java:2046)
at javax.servlet.http.HttpServletRequestWrapper.getPart(HttpServletRequestWrapper.java:361)
at
Main.lambda$main$0(Main.java:39)
at
Main$$Lambda$1/1190654826.handle(Unknown Source)
at spark.SparkBase$2.handle(SparkBase.java:343)
at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:120)
at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60)
EDIT
Найдено решение. Spark недавно выпустил v2.3, который с ответом HaiderAgha действительно работает. Поэтому решение должно обновиться до версии 2.3 и использовать org.eclipse.jetty.multipartConfig
вместо org.eclipse.multipartConfig
.
Это исправление фактически работает только для Спарк 2.3, который недавно был освобожден. Во всяком случае, я отметил этот ответ как решение и добавил комментарий в своем оригинальном сообщении. Благодаря! – Mattan
Это работает для меня. Я заметил, что при использовании multipart/form-data вы должны использовать «части» для * все *, так как искра не может справиться с этим. Рамка для мусора. –