多檔案上傳multiparthttpservletrequest後臺接收多張圖片
前臺程式碼:
$("#fm").form("submit", {
url: url,
onSubmit: function () {
return $(this).form("validate");
},
success: function (result) {
$.messager.alert("系統提示", "儲存成功");
resetValue();
$("#dlg").dialog("close");
$("#dg").datagrid("reload");
}
});
<form id="fm" method="post" enctype="multipart/form-data">
<table cellspacing="8px">
<tr>
<td>商品名稱:</td>
<td><input type="text" id="goodsName" name="goodsName"
class="easyui-validatebox" required="true"/> <font
color="red">*</font>
</td>
<tr>
<td>選擇圖片:</td>
<td>
<input id="goodsPicture" name="goodsPicture" type="file" />
</td>
</tr>
<tr>
<td>選擇圖片:</td>
<td>
<input id="goodsPicture1" name="goodsPicture1" type="file"/>
</td>
</tr>
</table>
</form>
後臺程式碼:
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//獲取前臺提交圖片
if (multipartResolver.isMultipart(request)){
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
String filepath = "D:/test";
Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
String fileName = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 獲取單個檔案
MultipartFile mf = entity.getValue(); // 獲得原始檔名
fileName = mf.getOriginalFilename(); // 擷取檔案型別; 這裡可以根據檔案型別進行判斷
String fileType = fileName.substring(fileName.lastIndexOf('.'));
try {
// 擷取上傳的檔名稱
String newFileName = fileName.substring(0, fileName.lastIndexOf('.'));
//圖片轉換成io,存到資料庫
byte[] image = mf.getBytes();
// 拼接上傳檔案位置
goods.setImage(image);
goods.setImageName(newFileName);
goods.setImageType(fileType);
//儲存到伺服器
String newfilePath = filepath + File.separatorChar + newFileName + fileType;
System.out.println("拼接好的檔案路徑地址------------->>>>>>>>" + newfilePath);
// 重新組裝檔案路徑,用於儲存在list集合中
File dest = new File(filepath);
// 判斷資料夾不存在就建立
if (!dest.exists()) {
dest.mkdirs();
}
// 建立檔案例項
File uploadFile = new File(newfilePath);
// 判斷檔案已經存在,則刪除該檔案
if (uploadFile.exists()) {
uploadFile.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}