繁体   English   中英

如何通过 Ajax 调用向 Servlet 发送文件

[英]How to send file via Ajax call to Servlet

I have an HTML form in AEM where I have to attach the files and the same files will be sent to one Rest API via Java Servlet. I am calling the Java Servlet via Ajax and able to send other String data to Java Servlet but not able to send the file Array which contains the files attached to the HTML Form attachment option while submitting the Form. 如何获取 Java servlet 中的文件?

在 JS 中

var myFile [] 是我在 ajax 调用中发送的内容。

$.ajax({ url: /servletUrl, type: 'post', data: { 'myFile': myFile, }, success: function(response){

} });

在 Java 中:

枚举参数对象 = request.getparameter();

当我将 object 放入 HashMap 并尝试获取文件时,它的类型是字符串而不是 Object。 我不确定在哪里将其设置为字符串。

servlet 必须能够处理多部分消息。

我不知道AEM,但是在Jakarta / Java Enterprise Edition / JEE / J2EE:

  1. 您必须专门将 @Multipart 注释添加到 servlet。
  2. 现在,打开浏览器,按 F12 到 go 进入调试详细信息,当您触发请求时,网络选项卡将显示所有发布的信息。 查找参数的名称,通常是调用file[]
  3. 在 servlet 中处理请求时,可以使用HttpServletRequestrequest.getParts()方法查找所有参数部分。
  4. 使用final Part filePart = request.getPart(pFileParamName); final InputStream filecontent = filePart.getInputStream(); 您将能够访问数据。

这在大多数 servlet 框架中可能非常相似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM