public static List<MultipartFile> getMultipartFileList(
HttpServletRequest request) {
List<MultipartFile> files = new ArrayList<MultipartFile>();
try {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
if (request instanceof MultipartHttpServletRequest) {
// 將request變成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multiRequest.getFileNames();
// 檢查form中是否有enctype="multipart/form-data"
if (multipartResolver.isMultipart(request) && iter.hasNext()) {
// 獲取multiRequest 中所有的文件名
while (iter.hasNext()) {
// 一次遍歷所有文件
// MultipartFile file =
// multiRequest.getFile(iter.next().toString());
// if (file != null) {
// files.add(file);
// }
// 適配名字重複的文件
List<MultipartFile> fileRows = multiRequest
.getFiles(iter.next().toString());
if (fileRows != null && fileRows.size() != 0) {
for (MultipartFile file : fileRows) {
if (file != null && !file.isEmpty()) {
files.add(file);
}
}
}
}
}
}
} catch (Exception ex) {
System.err.print("解析MultipartRequest錯誤");
LOG.error("解析MultipartRequest錯誤",ex);
}
return files;
}