如何解决如何通过 Ajax 调用发送文件到 Servlet
我在 AEM 中有一个 HTML 表单,我必须在其中附加文件,并且相同的文件将通过 Java Servlet 发送到一个 Rest API。 我正在通过 Ajax 调用 Java Servlet,并且能够将其他字符串数据发送到 Java Servlet,但无法在提交表单时发送包含附加到 HTML 表单附件选项的文件的文件数组。如何在 Java servlet 中获取文件?
在JS中
var myFile [] 是我在 ajax 调用中发送的内容。
$.ajax({
网址:/servletUrl,
类型:'帖子',
数据: {
'我的文件':我的文件,
},成功:功能(响应){
} });
在 Java 中:
Enum paramObject = request.getparameter();
当我将对象放入 HashMap 并尝试获取文件时,它的类型是 String 而不是 Object。 我不确定在哪里将它设置为字符串。
解决方法
servlet 必须能够处理多部分消息。
我不知道 AEM,但在 Jakarta / Java Enterprise Edition / JEE / J2EE 中:
- 您必须专门向 servlet 添加 @Multipart 注释。
- 现在,打开浏览器,按 F12 进入调试详细信息,当您触发请求时,网络选项卡将显示所有发布的信息。查找参数的名称,通常是调用
file[]
- 在 servlet 中处理请求时,您可以使用
HttpServletRequest
的request.getParts()
方法查找所有参数部分。 - 通过
final Part filePart = request.getPart(pFileParamName);
和final InputStream filecontent = filePart.getInputStream();
,您将能够访问数据。
这在大多数 servlet 框架中可能非常相似。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。