【问题标题】:Servlet 3.0 MultiPartConfig not working for multipart/relatedServlet 3.0 MultiPartConfig 不适用于多部分/相关
【发布时间】:2019-03-13 20:22:27
【问题描述】:

我在尝试对 HttpServletRequest 对象使用 getParts() 方法时遇到以下异常。这是request#contentType() = "multipart/related; type="application/dicom"; boundary=multiparttest"

ERROR [stderr] (default task-1) javax.servlet.ServletException: UT010016: Not a multi part request
ERROR [stderr] (default task-1)     at io.undertow.servlet//io.undertow.servlet.spec.HttpServletRequestImpl.loadParts(HttpServletRequestImpl.java:575)
ERROR [stderr] (default task-1)     at io.undertow.servlet//io.undertow.servlet.spec.HttpServletRequestImpl.getParts(HttpServletRequestImpl.java:514)

几乎所有的文档都谈到了 multipart/form-data。 MultiPartConfig 不支持 multipart/related 吗?使用多部分/相关内容处理请求的最佳方式是什么?

【问题讨论】:

标签: java servlets servlet-filters servlet-3.0


【解决方案1】:

您的 servlet 应如下所示:

@WebServlet("/upload")
@MultipartConfig(location = "C:/temp", 
        fileSizeThreshold = 1024 * 1024 * 1, // 1 MB
        maxFileSize = 1024 * 1024 * 10, // 10 MB
        maxRequestSize = 1024 * 1024 * 15 // 15 MB
)
public class UploadServlet extends HttpServlet {
//your code here
}

我是从Servlet 3 File Upload Example using MultipartConfig 帖子中找到的

其他方式:

参考了 JAX-RS 上的 Spring 文档,选择使用支持 multipart/related 的 Jersey 依赖来解决。我找到了以下测试项目:https://github.com/ShawnTuatara/stackoverflow-38838926.

【讨论】:

  • 我也是这样做的。正如我的问题中提到的,我得到的例外是请求不是多部分的。所以,我猜,“多部分/相关”内容类型不被 servlet 识别为多部分。我想知道解析 HttpsServletRequest 部分的最佳方法是什么;如果有任何库支持“多部分/相关”。
猜你喜欢
  • 2014-06-07
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多