/**
* 擷取目前請求中的檔案清單
*
* @param request
* @return
*/
protected 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) {
log.error("解析MultipartRequest錯誤", ex);
}
return files;
}