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);