<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-95  評論-31  文章-10  trackbacks-0
    需求: 
    1:上傳一個或者多個文件 
    2:同時攜帶其它text字段 

    解決: 用spring-boot很簡單,網上流傳的還是復雜了。

    1:搭建spring-boot,版本為1.4.3.RELEASE 
    2:只需要在application.properties里面添加如下內容: 

    參數根據自己需要調整
    # file upload
    spring.http.multipart.enabled=true
    spring.http.multipart.file-size-threshold=0
    spring.http.multipart.max-file-size=50MB
    #spring.http.multipart.location=/uploads
    spring.http.multipart.max-request-size=100MB
    spring.http.multipart.resolve-lazily=false


    3:以上配置就完事了,不需要再配置其它的! 
    4:進入restController 方法上這樣寫這是最簡單的配置,不需要再加consumer注解multipart/form-data,只要客戶端http請求的ContentType=multipart/form-data即可:
    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public ResponseResult saveSharecare(HttpServletRequest request, @RequestPart(value = "file") MultipartFile[] multipartFiles,@Valid ShareCareDto shareCareDto){} 

    解釋: 
    1): request不多說了,默認獲取所有的,可以寫,也可以不寫,也可以注解加httpheader cookie等等,按你所需 
    2):上傳文件一定要加@RequestPart(value="file"),如果是多個文件(這里就是多個),value="file",表示name值就是file,多個文件name值要相等。 如果不加@RequestPart注解,httpServletRequest仍然可以獲取多個multipartFiles,但是這個方法入參multipartFiles就沒值,所以要加上該注解 
    3):sharecareDto就是你傳輸的DTO實體,這里只是個例子@Valid注解是開啟驗證,這個實體的屬性哪些必填,哪些字段大小等等的注解驗證。

    以上就是所有配置。

    問題:1:為什么這樣配置就可以上傳? spring.io官網給出了答案,見 https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/htmlsingle/#howto-multipart-file-upload-configuration


    注: MultipartAutoConfiguration 類增加了StandardServletMultipartResolver 對Servlet 3 javax.servlet.http.Part進行了增強,所以無需配置了。 


    客戶端http完整請求示例:

    POST /v1/sharecare/save HTTP/1.1
    Host: localhost:8080
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
    Accept: */*
    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    content-type: multipart/form-data; boundary=---------------------------22751826015688
    origin: moz-extension://7450cf37-12f8-4d6e-af59-921a7f04d962
    Content-Length: 426396
    token: 123456
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    <!-- 這里就是dto放屬性的地方 -->
    -----------------------------22751826015688
    Content-Disposition: form-data; name="headline"
    123456
    -----------------------------22751826015688
    Content-Disposition: form-data; name="file"; filename="IMG_0461.jpg"
    Content-Type: image/jpeg
    ???
    -----------------------------22751826015688
    Content-Disposition: form-data; name="file"; filename="IMG_0462.jpg"
    Content-Type: image/jpeg
    ???
    -----------------------------22751826015688


    完!





    posted on 2017-10-19 13:28 朔望魔刃 閱讀(1354) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 成人网站免费大全日韩国产| 精品久久久久久久久亚洲偷窥女厕| 一本岛v免费不卡一二三区| 国产三级电影免费观看| 久久亚洲中文字幕无码| 永久在线毛片免费观看| 偷自拍亚洲视频在线观看99| 国产免费人成视频在线观看| 免费亚洲视频在线观看| 亚洲国产成人影院播放| a级毛片免费观看在线| 亚洲一区二区三区影院| 香蕉成人免费看片视频app下载| 久久久亚洲欧洲日产国码aⅴ | 亚洲欧洲精品成人久久奇米网 | 免费在线观看日韩| 麻豆va在线精品免费播放| 国产综合亚洲专区在线| 免费国产午夜高清在线视频| 亚洲最大的成网4438| 曰曰鲁夜夜免费播放视频 | 成人看的午夜免费毛片| 色婷婷亚洲一区二区三区| 亚洲午夜久久久影院伊人| 好久久免费视频高清| 亚洲国产高清美女在线观看| 日本久久久免费高清| 国产免费福利体检区久久| 亚洲黄色在线观看网站| 午夜成人免费视频| h视频在线观看免费| 亚洲福利电影在线观看| 日本免费人成黄页网观看视频| 国产vA免费精品高清在线观看 | 亚洲精品9999久久久久无码| 亚洲天堂免费在线视频| 无码国产精品一区二区免费模式| 自拍日韩亚洲一区在线| 91麻豆国产自产在线观看亚洲| 2019中文字幕在线电影免费| 日韩色日韩视频亚洲网站|