當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot 文件上传、下载、设置大小
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot 文件上传、下载、设置大小
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文使用SpringBoot的版本為2.0.3.RELEASE
?
1.上傳單個文件
①html對應(yīng)的提交表單
<form action="uploadFile" method="post" enctype="multipart/form-data"><p>選擇文件: <input type="file" name="fileName"/></p><p><input type="submit" value="提交"/></p></form>?
②Boot中的處理代碼。這里要注意
@RequestMapping("/uploadFile")? 對應(yīng) action="uploadFile"
@RequestParam("fileName") 對應(yīng) name="fileName"
@RequestMapping("/uploadFile")@ResponseBodypublic String uploadFile(@RequestParam("fileName") MultipartFile file) {//判斷文件是否為空if (file.isEmpty()) {return "-1";}String fileName = file.getOriginalFilename();//加個時間戳,盡量避免文件名稱重復(fù)String path = "D:/" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + fileName;File dest = new File(path);//判斷文件是否已經(jīng)存在if (dest.exists()) {return "-2";}//判斷文件父目錄是否存在if (!dest.getParentFile().exists()) {dest.getParentFile().mkdir();}try {file.transferTo(dest); //保存文件} catch (IOException e) {return "-3";}return "0";}?
2.上傳多個文件
①html對應(yīng)的提交表單
<form action="uploadMultifile" method="post" enctype="multipart/form-data" ><p>選擇文件1: <input type="file" name="fileName"/></p><p>選擇文件2: <input type="file" name="fileName"/></p><p>選擇文件3: <input type="file" name="fileName"/></p><p><input type="submit" value="提交"/></p></form>②Boot中的處理代碼。
@RequestMapping("/uploadMultifile")@ResponseBodypublic String keywordSubmitFile(@RequestParam("fileName") List<MultipartFile> files) {for (MultipartFile file : files) {//這里簡單輸出文件名稱 System.out.println(file.getOriginalFilename());}return "0";}?
3.下載文件
@RequestMapping("/downloadFile") @ResponseBodypublic String downloadFile(HttpServletResponse response, @RequestParam("fileName") String filePathName) {File file = new File(filePathName);if (!file.exists()) {return "-1";}response.reset();response.setHeader("Content-Disposition", "attachment;fileName=" + filePathName);try {InputStream inStream = new FileInputStream(filePathName);OutputStream os = response.getOutputStream();byte[] buff = new byte[1024];int len = -1;while ((len = inStream.read(buff)) > 0) {os.write(buff, 0, len);}os.flush();os.close();inStream.close();} catch (Exception e) {e.printStackTrace();return "-2";}return "0";}?
4.設(shè)置上傳下載文件大小
①根據(jù)不同版本,對應(yīng)的設(shè)置值不一樣
Spring Boot 1.3.x and earlier
- multipart.maxFileSize
- multipart.maxRequestSize
Spring Boot 1.4.x and 1.5.x
- spring.http.multipart.maxFileSize
- spring.http.multipart.maxRequestSize
Spring Boot 2.x
- spring.servlet.multipart.maxFileSize
- spring.servlet.multipart.maxRequestSize
?
②比如在2.x的版本,則在項目的application.properties文件中設(shè)置30MB大小
spring.servlet.multipart.maxFileSize=30MB spring.servlet.multipart.maxRequestSize=30MB如果不限制大小,則設(shè)置為-1即可
spring.servlet.multipart.maxFileSize=-1 spring.servlet.multipart.maxRequestSize=-1?
參考:
《Spring Boot入門——文件上傳與下載》
《I am trying to set maxFileSize but it is not honored》
?
以上。
??
轉(zhuǎn)載于:https://www.cnblogs.com/chevin/p/9260842.html
總結(jié)
以上是生活随笔為你收集整理的SpringBoot 文件上传、下载、设置大小的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 26期20180703 正则 grep
- 下一篇: 浅谈Android中Lifecycle