gpt4 book ai didi

java - 如何同时接受 multipart 和 application/x-www-form-urlencoded?

转载 作者:可可西里 更新时间:2023-11-01 16:38:50 24 4
gpt4 key购买 nike

我构建了一个允许上传文件或上传列表作为输入的 servlet。到目前为止,我已经通过将 servlet 设置为接受 multipart/form-data 来处理它,因此即使没有文件,我也会将列表作为一部分读取。

我现在尝试调用此 servlet 以通过 JQuery AJAX 方法而不是通过表单上传列表。如果我尝试通过该方法正常上传列表,我会得到:

org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8

如果我像这样将 contentType 设置为 multipart/form-data:

$.ajax({    
url: someUrl,
type: 'POST',
contentType: 'multipart/form-data',
data: {list: inputList}
});

我得到的是这个错误:

org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found

我的问题是,是否有某种方法可以配置 servlet 以接受两种内容类型,或者是否有某种方法可以编写 ajax 数据来上传 multipart/form-data?

我知道使用 FormData API 上传 multipart/form-data 很简单,但我需要支持 IE9,所以这不是一个选项。

最佳答案

我建议你使用Apache Commons FileUpload图书馆。它为您提供了一个统一的界面,无论提交的是哪种类型的表单,并且可以轻松处理上传的文件。请参阅 User Guide处理上传的项目部分,它应该让您大致了解其工作原理。

关于java - 如何同时接受 multipart 和 application/x-www-form-urlencoded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com