從request中獲取當前請求中的檔案列表
阿新 • • 發佈:2019-01-26
/** * 獲取當前請求中的檔案列表 * * @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; }