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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

form表单上传文件_SpringBoot中如何使用SpringMVC上传文件?

發(fā)布時(shí)間:2024/9/19 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 form表单上传文件_SpringBoot中如何使用SpringMVC上传文件? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天我們要說的這個(gè)話題很簡單,不要問為啥,因?yàn)镾pringBoot,哈哈。現(xiàn)在SpringBoot可以說人人都會(huì)用了,它的好處是顯而易見的,大大的簡化了配置,一起來看看吧。

我們分以下3種情況來談這個(gè)話題。

第一種:上傳單個(gè)文件

先來看一下form表單的設(shè)置,如下圖所示:

單個(gè)文件的form

form表單要滿足以下3點(diǎn)才行:

  • form表單的method屬性的值是POST
  • form表單的enctype屬性的值是multipart/form-data
  • 上傳文件的input的類型要是file
  • SpringMVC的設(shè)置如下:

    SpringMVC接收單個(gè)文件

    從圖中可以看出服務(wù)端的寫法非常簡單,直接寫Controller就行了。簡單地說明一下,processUpload方法的參數(shù)要用MultipartFile接口來接收,這樣SpringMVC才能接收到文件類型的輸入項(xiàng),之所以這么簡單主要是因?yàn)镾pringBoot已經(jīng)為我們做好了所有的準(zhǔn)備工作。當(dāng)然了@RequestParam注解也可以換成@RequestPart,如圖:

    @RequestPart

    我們這個(gè)這里返回了"redirect:/",用于重定向到根路徑。

    那么接下來我們就來看一下怎么上傳多個(gè)文件。

    第二種:不同的name上傳多個(gè)文件

    這種是由上傳單一文件引申出來的,其實(shí)就是form表單上傳多個(gè)數(shù)據(jù)項(xiàng),只不過有多個(gè)file類型的input。這些多個(gè)不同的input通過name進(jìn)行區(qū)分。如下圖的3個(gè)input的name分別是file1、file2、file3:

    多個(gè)不同的name

    SpringMVC端就用多個(gè)參數(shù)來接收,很簡單的,如下圖:

    接收多個(gè)file

    這種場景屬于上傳多個(gè)圖片,還不是通常意義上的批量上傳,一個(gè)name代表一個(gè)種類,每個(gè)種類下含有一張圖片。

    第三種:同一個(gè)name上傳多個(gè)文件

    這種方式是把表單中的file類型的input設(shè)置成同一個(gè)name,這樣SpringMVC就會(huì)把它們當(dāng)做數(shù)組或列表來對待,form表單的寫法如下,它們的name都是files:

    同一個(gè)name

    SpringMVC端使用MultipartFile列表來接收文件如下圖,其中txt用于接收表單中的一個(gè)輸入框:

    List接收文件

    如果換成數(shù)組接收的話就如同下圖所示:

    數(shù)組接收文件

    這種場景才屬于真正意義上的批量上傳,比如同一個(gè)主題下的多個(gè)圖片。

    MultipartFile接口提供的方法

    我們現(xiàn)在看一下MultipartFile接口的一些方法,理解這些方法對于編程還是很有好處的,可以快速提高我們的開發(fā)效率。

    String getName();

    獲取參數(shù)在表單中的名稱

    String getOriginalFilename();

    獲取文件的原始名稱,比如你上傳的是apple.jpeg,那么這個(gè)方法返回的就是apple.jpeg。

    String getContentType();

    返回http請求的ContentType

    boolean isEmpty();

    判斷上傳的文件是否為空

    long getSize();

    返回文件的字節(jié)數(shù)形式的大小

    byte[] getBytes();

    返回文件的字節(jié)數(shù)組

    InputStream getInputStream();

    返回一個(gè)代表該文件的輸入流,通常用于關(guān)閉流

    void transferTo(File dest);

    把接收到的文件寫入到目的文件中,如果目的文件已經(jīng)存在了則會(huì)先進(jìn)行刪除。用法如下:

    file.transferTo(new File("/Users/i/apple.jpeg"));

    void transferTo(Path dest)

    作用同void transferTo(File dest);

    總結(jié)

    好了,今天的內(nèi)容就這些了,主要和大家分享了基于SpringBoot的上傳文件的方式,包括上傳單個(gè)文件,上傳多個(gè)不同name的文件和上傳多個(gè)相同name的文件。另外還介紹了MultipartFile接口的常用功能。其中transferTo還是很實(shí)用的。

    今天的內(nèi)容就到這里了,小伙伴們有什么疑問可以在評論區(qū)留言哦。

    總結(jié)

    以上是生活随笔為你收集整理的form表单上传文件_SpringBoot中如何使用SpringMVC上传文件?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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