List<MultipartFile> fileList = FileUtil.multiFileRead(request);
public static List<MultipartFile> fileRead(HttpServletRequest request) {
//用於獲取用戶上傳的全部文件
List<MultipartFile> fileList = new ArrayList<MultipartFile>();
try {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//判斷上傳的文件是否符合spring的接收標準(前臺form中需要設置相應類型)
if(multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
MultiValueMap<String,MultipartFile> mFile = multiRequest.getMultiFileMap();
mFile.entrySet();
Map<String, MultipartFile> fileMap = multiRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 獲取單個文件
MultipartFile mf = entity.getValue();
// 獲得原始文件名
String fileName = mf.getOriginalFilename();
// 截取文件類型; 這裏可以根據文件類型進行判斷
String fileType = fileName.substring(fileName.lastIndexOf('.'));
}
//遍歷用戶上傳的文件
Iterator<String> iter = multiRequest.getFileNames();
while(iter.hasNext()) {
//獲取文件
fileList.add(multiRequest.getFile((String)iter.next()));
}
}
return fileList;
} catch (Exception e) {
log.error(e.getLocalizedMessage());
throw new BusinessException(e.getLocalizedMessage());
}
}
for (MultipartFile file : fileList) {
if (file != null) {
FileInfo fileInfo = new FileInfo();
Map<String, String> map = FileUtil.newFileUpload(file);
fileInfo.setLinkId(eventBase.getId());
fileInfo.setFileName(map.get(FileUtil.FILENAME));
fileInfo.setFileURL(map.get(FileUtil.FILEURL));
fileInfo.setFileSize(map.get(FileUtil.FILESIZE));
fileInfo.setCreatorId(eventBase.getCreator());
// 保存文件數據
fileInfoDAO.insertFileInfo(fileInfo);
}
}