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

歡迎訪問 生活随笔!

生活随笔

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

javascript

springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式...

發(fā)布時間:2023/12/19 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SpringBoot入門建站全系列(九)文件上傳功能與下載方式

Spring對文件上傳做了簡單的封裝,就是用MultipartFile這個對象去接收文件,當然有很多種寫法,下面會一一介紹。

文件的下載很簡單,給一個鏈接就行,而這個鏈接怎么生成,也有很多方式,下面也會講解下常用的方式。

項目地址: 品茗IT-同步發(fā)布

品茗IT 提供在線支持:

一鍵快速構(gòu)建Spring項目工具

一鍵快速構(gòu)建SpringBoot項目工具

一鍵快速構(gòu)建SpringCloud項目工具

一站式Springboot項目生成

Mysql一鍵生成Mybatis注解Mapper

如果大家正在尋找一個java的學習環(huán)境,或者在開發(fā)中遇到困難,可以加入我們的java學習圈,點擊即可加入,共同學習,節(jié)約學習時間,減少很多在學習中遇到的難題。

一、配置

本文假設你已經(jīng)引入spring-boot-starter-web。已經(jīng)是個SpringBoot項目了,如果不會搭建,可以打開這篇文章看一看《SpringBoot入門建站全系列(一)項目建立》。因為文件上傳和下載不需要引入額外的jar包了。但是需要做如下配置:

application.properties 中需要添加下面的配置:

spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=20MB spring.servlet.multipart.max-request-size=50MB

這里,

  • spring.servlet.multipart.max-file-size是對單個文件大小的限制。
  • spring.servlet.multipart.max-request-size是對單次請求的大小進行限制

至此,已經(jīng)可以正常的進行上傳下載了,就剩下寫代碼了。

二、文件上傳的幾種方式

2.1 單個文件上傳

在Controller的RequestMapping注解的方法參數(shù)中,直接將MultipartFile作為參數(shù)傳遞進來。

package

測試的時候,使用postman可以這樣傳參:

2.2 多個文件上傳

在Controller的RequestMapping注解的方法參數(shù)中,直接將MultipartFile作為list傳遞進來。在FileRest中增加uploadList方法。

package

測試的時候,使用postman可以這樣傳參:

2.3 從HttpServletRequest中取文件

新建uploadByRequest方法,將HttpServletRequest作為參數(shù),Spring自動傳入。

Spring對Request做了一層封裝,如果有文件,它就是MultipartHttpServletRequest。 然后我們可以從MultipartHttpServletRequest獲取到MultipartFile。后面的處理方式一樣了。

package

測試的時候,傳參方式使用上面兩種都可以了。

三、文件下載方式

文件上傳成功后,我們同時會提供下載功能。下載功能很簡單,有以下幾種方式:

3.1 Spring配置映射

新建一個WebStaticConfig配置類,實現(xiàn)WebMvcConfigurer接口即可:

import

這句話將當前服務器(比如是http://127.0.0.1:8080)的/static路徑(http://127.0.0.1:8080/static/)下的資源,映射到uploadStaticLocal指定的本地路徑下的文件。

然后我們就可以直接訪問文件了。

3.2 代理(nginx)映射

代理首選nginx了。高性能快捷的代理轉(zhuǎn)發(fā)工具。

比如要將http://127.0.0.1:8081/static/下的資源,映射到/static/指定的本地路徑下的文件,可以這樣配置:

server {listen 8081;server_name localhost;location /static {alias /static/;index index.html;} }

這里為什么用8081而不是上面的8080了呢?因為上面的8080端口已經(jīng)被SpringBoot應用占用了。nginx要在另一個端口監(jiān)聽了,如果非要將SpringBoot應用和靜態(tài)資源在一個端口,可以對SpringBoot應用也做代理,例如:

server {listen 8081;server_name localhost;location ^~ /api/ {proxy_pass http://127.0.0.1:8080/;}location /static {alias /static/;index index.html;} }

3.3 ResponseEntity讀取文件并返回

比如我們在FileRest的Controller中建立個downloadFile方法,傳入文件名,將文件讀取為byte,包裝成ResponseEntity返回。

@RequestMapping

四、過程中用到的實體及Service

詳細完整的實體及Service,可以訪問品茗IT-博客《SpringBoot入門建站全系列(九)文件上傳功能與下載方式》

快速構(gòu)建項目

Spring組件化構(gòu)建

喜歡這篇文章么,喜歡就加入我們一起討論SpringBoot技術吧!

總結(jié)

以上是生活随笔為你收集整理的springboot util 测试类怎么写_SpringBoot入门建站全系列(九)文件上传功能与下载方式...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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