一:封装一个静态方法
/**
* 附件上传(支持各种文件)
* @param MultipartFile 类型的file文件对象
* @return Map - fileName(文件名称) , newFileName(新文件名称) ,saveFilePath(上传路径)
*/
public static Map<String, String> uploadFile(MultipartFile file){
Map<String , String> objectMap = new HashMap<String , String>();
//获取前台传递的文件
MultipartFile imgFile1 = file;
// 获取图片的文件名
String fileName = file.getOriginalFilename();
// 获取图片的扩展名
String extensionName = fileName.substring(fileName.lastIndexOf(".") + 1);
// 新的图片文件名 = 获取时间戳+"."图片扩展名
String newFileName = String.valueOf(System.currentTimeMillis()) + "." + extensionName;
//图片上传路径
String picDir = Property.getValue("imagepath");;
String saveFilePath = picDir;
//构建文件目录
File fileDir = new File(saveFilePath);
//判断是否有该文件夹,没有新建
if (!fileDir.exists()) {
fileDir.mkdirs();
}
//上传图片
try {
FileOutputStream out = new FileOutputStream(saveFilePath + "\\" + newFileName);
// 写入文件
out.write(imgFile1.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
objectMap.put("fileName", fileName);
objectMap.put("saveFilePath", saveFilePath);
objectMap.put("newFileName", newFileName);
return objectMap;
}
二:前台
multiple :加上这个代表按住 Ctrl 能多选
<form action="方法名?fkzj=${fkzj}" id="myform2" method="post" enctype="multipart/form-data" οnsubmit="return check()">
<table>
<tr id="fujian" >
<td class="title_td" >附件</td>
<td >
<input type="file" multiple id="file" name="file" />
<input type="submit" value="上传附件" />
</td>
</tr>
</table>
</form>
二:后台方法
/**
* 批量上传附件
*/
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFormUpload(MultipartHttpServletRequest request,Jdjc_fkfjModel fjModel,ModelMap modelmap){
String fkzj=request.getParameter("fkzj");
List<MultipartFile> file = request.getFiles("file");
for (int i = 0; i < file.size(); i++) {
//调用静态方法
Map<String , String> imgxxMap = ListToMap.uploadFile(file.get(i));
String imgpath=(imgxxMap.get("saveFilePath") +"/" + imgxxMap.get("newFileName"));
fjModel.setPath(imgpath);
fjModel.setName(imgxxMap.get("fileName"));
fjModel.setFkzj(fkzj);
fjModel.setZj(CommonUtil.getUUID32());
fjservice.add(fjModel);
}
//上传成功后 继续返回当前页 但许保留zj
modelmap.put("fkzj", fkzj);
return "/cydwgl/lhzfbs/fj_add";
}