> Java > java지도 시간 > 본문

Spring MVC의 Multipart/form-data 처리 방법 소개(코드 예제)

不言
풀어 주다: 2019-02-22 13:43:24
앞으로
6811명이 탐색했습니다.

이 글은 Spring MVC의 Multipart/form-data 처리 방법(코드 예제)을 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

Multipart/form-data

Multipart/form-data는 양식의 MIME 인코딩 속성 중 하나입니다. 총 3가지 값이 있습니다

① application/x-www-form-urlencoded

② multipart/form-data

3 text/plain

1은 HTML 양식의 기본 전송 인코딩 유형입니다.

2는 양식에서 업로드한 텍스트가 아닌 콘텐츠로 파일 데이터를 전송하는 속성을 설정하고 게시물에 협력합니다. 파일 업로드를 위한 요청 방법

③은 일반 텍스트를 의미합니다. 이메일을 보낼 때 이 인코딩을 설정해야 합니다. text/plain과 text/html을 비교하면 전자는 일반 텍스트 파일을 전송하는 데 사용되고 후자는 인코딩됩니다. html 코드 전송을 위한 유형입니다. 그래야만 위에서 언급한 MIME을 사용할 수 있습니다. 전체 영어 이름은 "Multi Purpose Internet Mail Extensions"입니다. MIME을 통해 브라우저의 재요청은 어떤 유형의 데이터가 수신되는지 서버에 알려줍니다.

Spring MVC는 Multipart/form-data를 처리합니다

두 가지 구현 방법:

1. Apache에 따라 다름


2 . StandardServletMultipartResolver: Servlet 3.0에 따라 SpringBoot는 기본적으로 이 방법을 지원합니다

1. 구성 확인자

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> 
로그인 후 복사

2.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿