struts多文件上传,后台时候 FormData 接收对应数据
前台代码
var uploaddata = new FormData(form);
//添加文件
for (var i = 0; i < files.length; i++) {
uploaddata.append("formFile"+i, files[i]);
}
//原有文件属性
var urls = "";
$(".deleteOrgImg").each(
function(index,ele){
var obj = $(ele);
var url = obj.attr("alt");
urls = url+";"+urls;
}
)
//添加属性
uploaddata.append("activeImgUrls", urls);
uploaddata.append("activeName", form.activeName.value);
uploaddata.append("activeDate", form.activeDate.value);
uploaddata.append("actPara", "saveActiveStyle");
$.ajax({
type: 'post',
url: '<%=request.getContextPath()%>/run/activeStyle.do',
data: uploaddata,
async: false,
contentType: false,
processData: false,
success: function(data){
layer.alert("成功");
window.location = "<%=request.getContextPath()%>/run/activeStyle.do?actPara=list";
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg("发生错误!");
window.location = "<%=request.getContextPath()%>/run/activeStyle.do?actPara=list";
}
});
后台接收的对象中 有个 private FormFile formFile;属性
List<FormFile> filelist = new ArrayList<FormFile>();
//这里的VO就是后台接收对象
Hashtable fileMap = vo.getMultipartRequestHandler().getFileElements();
int size = fileMap == null ? 0 : fileMap.size();
Iterator it = fileMap.keySet().iterator();
while (it.hasNext()) {
filelist.add((FormFile)fileMap.get(it.next()));
}
return filelist;