之前能够上传文件但是后台用request.getParameter(“activity_id”)接收参数为null,找了好多篇文章终于看到一个能解决的方法,记录一下。
js:
$(".img").fileinput({
uploadUrl:"/VolunteerManagement/servlet/ImportServlet", //接受请求地址
uploadAsync : true, //默认异步上传
showUpload : true, //是否显示上传按钮,跟随文本框的那个
showRemove : true, //显示移除按钮,跟随文本框的那个
showCaption : true,//是否显示标题,就是那个文本框
showPreview : true, //是否显示预览,不写默认为true
dropZoneEnabled : false,//是否显示拖拽区域,默认不写为true,但是会占用很大区域
maxFileCount : 1, //表示允许同时上传的最大文件个数
enctype : 'multipart/form-data',
validateInitialCount : true,
previewFileIcon: '<i class="glyphicon glyphicon-file"></i>',
msgFilesTooMany : "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
allowedFileExtensions: ["xls", "xlsx"], //接收的文件后缀
allowedPreviewTypes: null,
language : 'zh',
uploadExtraData : function() {// 向后台传递参数
var activity_id= $("#activity_id").val();
var data = {
activity_id :activity_id
};
return data;
}
});
java后台:
List<FileItem> formItems = upload.parseRequest(req);
if (formItems != null && formItems.size() > 0) {
// 迭代表单数据
for (FileItem item : formItems) {
// 使用item.isFormField()方法判断FileItem类对象封装的数据是否为普通文本表单字段,还是文件表单字段
if (item.isFormField()) {
String name = URLDecoder.decode(item.getFieldName(),"UTF-8");
String value = URLDecoder.decode(item.getString(),"UTF-8");
if(name.equals("activity_id")){activity_id=value;}
}
}