前端頁面形式如下:
js操作方式如下(用了layer彈出層):
var multiFiles = [];
var saveName = [];
var attas = $("#"+area+" .attaBox ").find('.template-atta');//獲取每個方框
var isTest = true;
attas.each(function(val,index){
var $file = $(this).find('input[type="file"]');//獲取用戶上傳的附件
if(!$file[0].files[0]){
layer.alert("你還有未上傳附件!");
isTest = false;
return false;
}
saveName.push($(this).find('.template-edit-area').first().text());
itemFlags.push($file.attr("id"));
params.append("atta",$file[0].files[0]);
});
if(isTest){
params.append("itemFlags",itemFlags);
params.append("saveName",saveName);
$.ajax({
url: '<%=basePath%>project/uploadProjectTemplateFiles' , //後臺接收路徑
type: 'post',
data: params,
cache: false,
processData: false,
contentType: false,
async: false
}).done(function(res) {//回調函數
layer.alert(res.msg);
}).fail(function(res) {
layer.alert(res.msg);
});
}
後臺(java)處理:
@RequestMapping(value = "/uploadProjectTemplateFiles",produces = "application/json;charset=UTF-8")
public @ResponseBody String uploadProjectTemplateFiles(@RequestParam(value = "proTagId") Integer proTagId,
String[] itemFlags, String[] saveName,
@RequestParam(value = "atta", required = true) MultipartFile[] atta) {
UserOnlineBean userOnlineBean = getUserOnlineBean();
Map<String, Object> map = new HashMap<String, Object>(0);
List<ProAttValue> ptList = new ArrayList<ProAttValue>(0);
if (null != userOnlineBean) {
if (null != itemFlags && null != atta && null != saveName && itemFlags.length == atta.length
&& atta.length == saveName.length) {
for (int i = 0; i < atta.length; i++) {
Map<String, Object> uploadFile = FileUploadUtil.uploadFile(atta[i], request);
String fileName = (String) uploadFile.get("fileName");
String url = (String) uploadFile.get("address");
ptList.add(new ProAttValue(proTagId, itemFlags[i], fileName, url, saveName[i],
userOnlineBean.getUserId(), new Date()));
}
try {
proAttValueService.add(proTagId, userOnlineBean.getUserId(), ptList);
map.put("code", "200");
map.put("msg", "附件已成功保存!");
} catch (ServiceException e) {
// TODO Auto-generated catch block
map.put("code", "500");
map.put("msg", "系統出錯了!");
}
} else {
map.put("code", "403");
map.put("msg", "文件數目不匹配,請確保所有附件已選擇!");
}
} else {
map.put("code", "404");
map.put("msg", "還未登錄!");
}
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.serializeNulls();
Gson gson = gsonBuilder.create();
return gson.toJson(map);
}