日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring文件上传

發(fā)布時間:2025/3/8 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring文件上传 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

Spring文件上傳

  • 1、所需依賴包:commons-fileupload-1.3.1.jar

  • 2、Maven配置文件pom.xml文件中加入依賴Jar包
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency>
  • 3、在spring的配置文件spring-mvc.xml中加入類型解析器
<!-- 上傳定義 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 100000 btyes --><property name="maxUploadSize" value="20971520"/></bean> 如果沒有配置multipartResolver,將會報: java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is?a MultipartResolver configured?
  • 4、文件上傳接口
@Controller @Api(value = "FileUploadController", description = "文件上傳控制器") public class FileUploadController {/*** 文件上傳接口方法* @param multipartFiles 文件* @param fileType 文件類型* @param request 請求* @param response 響應* @return Map*/@ResponseBody@ApiOperation(value = "文件上傳接口", httpMethod = "POST")@RequestMapping(value = "/common/uploadfile", method = RequestMethod.POST)public ResponseData uploadFile(@RequestParam("file") MultipartFile[] multipartFiles, @RequestParam(required = false) String fileType, HttpServletRequest request, HttpServletResponse response) {/** 1.如果只是上傳一個文件,則只需要MultipartFile類型接收文件即可,而且無需顯式指定@RequestParam注解* 2.如果想上傳多個文件,那么這里就要用MultipartFile[]類型來接收文件,并且還要指定@RequestParam注解* 3.上傳多個文件時,前臺頁面中的所有<input type="file"/>的name都應該是multipartFiles,否則參數(shù)里的multipartFiles無法獲取到所有上傳的文件* 4.多種格式文件上傳,日期分文件夾,資質(zhì)文件放到特定文件夾*///記錄上傳過程信息,返回前臺List<FileUploadEntity> list = new ArrayList<>();String dirName ;// 上傳文件保存的路徑if("qualification".equals(fileType)){// 資質(zhì)文件存放到特定文件夾dirName = "qualification";} else {// 其他格式文件存放到日期命名文件夾dirName = DateUtil.newDateString("yyyy-MM-dd");}/** 判斷是否存在文件夾*///如果用的是Tomcat服務器,則文件會上傳到{服務發(fā)布位置}/upload/文件夾下String realPath = request.getSession().getServletContext().getRealPath("/upload/" + dirName);File realPathDir = new File(realPath);if(!realPathDir.isDirectory() && !realPathDir.exists()){realPathDir .mkdirs();}/** 多文件循環(huán)遍歷上傳*/for (MultipartFile multipartFile : multipartFiles) {//記錄上傳過程信息,返回前臺FileUploadEntity fileUploadEntity = new FileUploadEntity();if (!multipartFile.isEmpty()) {// 唯一化文件名String newFileName = UUID.randomUUID().toString().replaceAll("-", "");// 獲取源文件拓展名String fileExtensionName = FileUtil.getFileExtensionName(multipartFile.getOriginalFilename());// 拼接拓展名newFileName = StringUtils.isNotEmpty(fileExtensionName) ? newFileName + "." + fileExtensionName : multipartFile.getOriginalFilename();// 文件相對路徑String relativePath = "/upload/" + dirName + "/" + newFileName;fileUploadEntity.setCode(200);fileUploadEntity.setFileName(multipartFile.getOriginalFilename());fileUploadEntity.setFilePath(relativePath);fileUploadEntity.setUploadDate(DateUtil.newDateString(DateUtil.TIME_FORMAT_FULL));try {//這里不必處理IO流關(guān)閉的問題,因為FileUtils.copyInputStreamToFile()方法內(nèi)部會自動把用到的IO流關(guān)掉//FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), new File(realPath, multipartFile.getOriginalFilename()));//這里不必處理IO流關(guān)閉的問題,因為transferTo方法的實現(xiàn)中會自動關(guān)閉IO流multipartFile.transferTo(new File(realPath, newFileName));} catch (IOException e) {e.printStackTrace();fileUploadEntity.setCode(500);}list.add(fileUploadEntity);}}return ResponseData.ok(list);} }

注意:@RequestParam("file")這里必須加入value值,否則多文件時接收不到

轉(zhuǎn)載于:https://my.oschina.net/u/4061880/blog/2999639

總結(jié)

以上是生活随笔為你收集整理的Spring文件上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。