webuploader的使用,这里就不多说了,官网上一大把!https://0x9.me/RsApH
实现如图所示功能:需引入:commons-fileupload.jar
js:
uploader.on('uploadBeforeSend', function (obj, data) {
//传入表单参数
data = $.extend(data, {
"age": "18",
"name": "John"
});
});
java后台使用ServletFileUpload来获取表单参数(包括file类型和普通表单数据类型):
注意:使用ServletFileUpload需要禁掉 multipartResolver组件,如:
public void uploader(HttpServletRequest request) {
boolean flag = ServletFileUpload.isMultipartContent(request);
if (flag) {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
// 解析request请求
try {
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
//是否是普通表单类型
if (item.isFormField()) {
if ("age".equals(item.getFieldName())) {
age = item.getString("UTF-8");
}
if ("name".equals(item.getFieldName())) {
name = item.getString("UTF-8");
}
} else {
//该表单项是file类型
File file = new File("自定义path");
if (!file.exists()) {
file.mkdirs();
}
String fieldName = item.getName();
File uploaderPath = new File(file, fieldName);
//上传
item.write(uploaderPath);
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
}