本文主要是介绍纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)(获取参数为空的问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
JS端
//上传文件方法
function upladFile() {
//纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)
//注意(浏览器高速模式/IE10+才行,IE10-不支持FormData())
var form = new FormData(); // FormData 对象
form.append("employeeId", "11111111111111111111111111111"); // 文件对象
form.append("fileFlag", "12");
form.append("base64Data", "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsAAD/2wBDAAgGBgc");
var url = "http://.../jsUploadBase64Servlet";
var xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("post", url); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
//xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//表单数据传输
//xhr.setRequestHeader("Content-Type", "multipart/form-data");//二进制数据传输
//xhr.setRequestHeader("Content-Type", "application/json");//Json数据传输
xhr.send(form); //开始上传,发送form数据
alert("Finish!!!");
}
Java端
//like12 add,bug,20190331
//form提交的时候,enctype为mutilpart/form-date,以二进制形式传输
//加上这两句,重新封装request,再接收参数就可以了
MultipartResolver resolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
MultipartHttpServletRequest multiRequest = resolver.resolveMultipart(request);
String employeeId = multiRequest.getParameter("employeeId");
String fileFlag = multiRequest.getParameter("fileFlag");
String base64Data = multiRequest.getParameter("base64Data");
System.out.println("---" + employeeId);
System.out.println("---" + fileFlag);
System.out.println("---" + base64Data);
这篇关于纯js调用Servlet图片上传(XMLHttpRequest/FormData方式IE10+才行)(获取参数为空的问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!