首頁 Java java教程 Spring MVC處理Multipart/form-data的方法介紹(程式碼範例)

Spring MVC處理Multipart/form-data的方法介紹(程式碼範例)

Feb 22, 2019 pm 01:43 PM
spring mvc

這篇文章帶給大家的內容是關於Spring MVC處理Multipart/form-data的方法介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

Multipart/form-data

Multipart/form-data 為表單的MIME編碼屬性之一,共有三個值

① application/ x-www-form-urlencoded

② multipart/form-data

#③ text/plain

①為Html表單預設傳輸編碼類型

#②是表單上傳的非文字的內容,傳遞的是文件數據,設定該屬性再配合post請求方式從而實現文件上傳

③是傳輸為純文字的意思,在發郵件時要設定這種編碼,拿text/plain和text/html做比較,前者用來傳輸純文字文件,後者則是傳遞html代碼的編碼類型,在發送頭文件時才用得上

上述所提到的MIME,它的英文全名為"Multipurpose Internet Mail Extensions" 多功能Internet 郵件擴充服務,它是一種多用途網際郵件擴充協定。透過MIME,瀏覽器的再請求,會告訴伺服器接收的資料是什麼類型.

Spring MVC 處理 Multipart/form-data

兩種實作方式:

1、CommonsMultipartResolver  :  依賴Apache 

2、StandardServletMultipartResolver  :  依賴Servlet 3.0 ,SpringBoot預設支援該方式

1、CommonsMultipartResolver 的設定

弊端:無法設定請求整體的最大容量

(1)宣告Bean與設定上傳參數:

<bean id="multipartResolver" 
   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="uploadTempDir" value="/temp"/>    <!--设置上传目录/temp -->
        <property name="maxUploadSize" value="2097152"/>   <!--最大文件容量设置为2M-->
        <property name="maxInMemorySize" value="0"/>    · <!--最大的内存大小设置为0,超过0就写入磁盘-->     
</bean>
登入後複製

2、StandardServletMultipartResolver 的配置

(1)宣告Bean:

<bean id="multipartResolver" 
class="org.springframework.web.multipart.support.StandardServletMultipartResolver”>
登入後複製
@Bean(name = "multipartResolver")
public StandardServletMultipartResolver getStandardServletMultipartResolver(){
          return new StandardServletMultipartResolver();
          }
登入後複製

(2) 配置上傳參數

web.xml 配置

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <multipart-config>
        <!--上传到/temp 目录-->
      <location>/temp/upload</location>
        <!--文件大小为2M-->
      <max-file-size>2097152</max-file-size>
        <!--整个请求不超过4M-->
      <max-request-size>4194304</max-request-size>
        <!--大于0M的所有文件都要写入磁盘-->
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
登入後複製

配置類別中配置

<form action="/save" method="post" enctype="multipart/form-data">
          <input type="file" name="pic">
          <input type="submit">
</form> 
登入後複製

二、Spring MVC 處理

1、表單:

  <form action="/save" method="post" enctype="multipart/form-data">
          <input type="file" name="pic">
          <input type="submit">
   </form>
登入後複製

2、MVC接收:

@RequestMapping(value = "/save",method = RequestMethod.POST)
    public String getHome(MultipartFile pic) throws IOException {
        Files.copy(pic.getInputStream(), Paths.get(ServletContext.getRealPath("/temp"),pic.getOriginalFilename));
        return null;
    }  
登入後複製

以上是Spring MVC處理Multipart/form-data的方法介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

掌握Spring MVC的關鍵概念:了解這些重要特性 掌握Spring MVC的關鍵概念:了解這些重要特性 Dec 29, 2023 am 09:14 AM

了解SpringMVC的關鍵特性:掌握這些重要的概念,需要具體程式碼範例SpringMVC是一種基於Java的Web應用開發框架,它透過模型-視圖-控制器(MVC)的架構模式來幫助開發人員建立靈活可擴展的Web應用程式。了解和掌握SpringMVC的關鍵特性將使我們能夠更有效地開發和管理我們的網路應用程式。本文將介紹一些SpringMVC的重要概念

Java後端開發:使用Java Spring MVC進行API MVC框架開發 Java後端開發:使用Java Spring MVC進行API MVC框架開發 Jun 17, 2023 am 10:27 AM

Java後端開發是一種非常重要的技術,它是現代網路應用程式的核心。 Java後端開發主要涉及APIMVC框架開發。在這篇文章中,我將介紹如何使用JavaSpringMVC進行APIMVC框架開發。 JavaSpringMVC是一個非常強大的開源框架,它主要用於網路應用程式的開發。它使用了MVC(Model-View-Controller)的架構模

JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 Feb 29, 2024 pm 05:16 PM

簡介RESTfulapi已經成為現代WEB應用程式中不可或缺的一部分。它們提供了一種標準化的方法來創建和使用Web服務,從而提高可移植性、可擴展性和易用性。在Java生態系統中,JAX-RS和springmvc是建構RESTfulAPI的兩個最受歡迎的框架。本文將深入探討這兩種框架,並比較它們的特性、優點和劣勢,幫助您做出明智的決定。 JAX-RS:JAX-RSAPIJAX-RS(JavaAPIforRESTfulWebServices)是由JavaEE開發的標準JAX-RSAPI,用於開發REST

java中controller包的作用 java中controller包的作用 May 07, 2024 am 02:45 AM

Spring MVC 架構中,Controller 套件透過處理使用者請求並回傳回應來實現業務邏輯,職責包括:接收使用者請求(通常透過 HTTP)。驗證和處理請求參數。呼叫適當的業務邏輯(通常是服務層)。渲染視圖並傳回給使用者(通常是 HTML、JSON 或 XML)。

Spring Security權限控制框架使用指南 Spring Security權限控制框架使用指南 Feb 18, 2024 pm 05:00 PM

在後台管理系統中,通常需要存取權限控制,以限制不同使用者對介面的存取能力。如果使用者缺乏特定權限,則無法存取某些介面。本文將用waynboot-mall專案舉例,跟大家介紹常見後管系統如何引入權限控制框架SpringSecurity。大綱如下:waynboot-mall專案網址:https://github.com/wayn111/waynboot-mall一、什麼是SpringSecuritySpringSecurity是一個基於Spring框架的開源項目,旨在為Java應用程式提供強大且靈活的安

Spring WebFlux 框架的架構與傳統 Spring MVC 有什麼不同? Spring WebFlux 框架的架構與傳統 Spring MVC 有什麼不同? Apr 17, 2024 pm 02:36 PM

SpringWebFlux與SpringMVC的關鍵差異在於響應式程式設計(非同步處理)與阻塞式I/O模型。這種差異導致了架構上的關鍵差異:非同步處理和事件循環模型;基於函數式介面的處理程序;非同步響應流(Publisher物件);簡化的異常處理機制;較高的吞吐量和可擴展性。

Go語言之於Java:從特性到應用的對比 Go語言之於Java:從特性到應用的對比 Apr 08, 2024 pm 02:45 PM

Go和Java的主要差異在於型別系統、並發性和記憶體管理。 Go使用靜態類型系統,強制編譯時聲明類型,而Java使用半靜態類型系統,允許在執行時間推斷類型。 Go的Goroutine支援高並發性,而Java則使用Java執行緒和鎖定機制。 Go使用垃圾收集器自動管理內存,而Java需要明確管理某些資源。這些差異導致了不同的應用場景:Go適用於高並發Web服務、雲端運算和大數據,而Java適用於需要複雜性和穩定性的企業級應用程式。

Java架構的發展歷程:從J2EE到SpringBoot Java架構的發展歷程:從J2EE到SpringBoot Feb 02, 2024 pm 04:02 PM

Java架構是一門廣泛應用於企業級應用開發的程式語言。隨著技術的不斷進步和開發需求的不斷變化,Java架構也經歷了多次演變和發展。本文將探討Java架構從J2EE到SpringBoot的演變與發展歷程。 J2EE時代J2EE(Java2Platform,EnterpriseEdition)是Java架構的一個重要里程碑,推出於1999年。它提供了一套標

See all articles