SpringMVC 단일 파일,다 중 파일 업로드 상세 설명

필요 한 흐름 지식:https://www.jb51.net/article/170640.htm
SpringMVC 에 파일 업로드 클래스 를 적 었 습 니 다.
파일 로 업로드 하려 면 먼저 파일 업로드 와 관련 된 Jar 패키지 가 필요 합 니 다.comons-fileupload.jar 와 comons-io.jar.
pom.xml 또는 lib 폴 더 에 추가 합 니 다.
pom.xml:

<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>
SpringMVC 의 설정 파일 에 bean 을 추가 합 니 다(id 와 class 는 고정 적 인 쓰기 입 니 다).

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"></property>
    <property name="maxUploadSize" value="104857600"></property>
  </bean>
전단 에 단일 파일 업로드 폼 을 쓰 고,다 중 파일 업로드 폼(다 중 파일 업로드 폼 중,다 중 파일 입력 input 의 name 동일):

<form action="handler/testUpload" method="post" enctype="multipart/form-data">
      : <input type="text" name="desc" id="desc">
  <br>
       : <input type="file" name="file"><br>
  <input type="submit" value="    ">
</form>
<br>
<br>
<form action="handler/testMutiUpload" method="post" enctype="multipart/form-data">
      : <input type="text" name="desc">
  <br>
       : <input type="file" name="file"><br>
       1: <input type="file" name="file"><br>
       2: <input type="file" name="file"><br>
  <input type="submit" value="    ">
</form>
파일 업로드 중 인 자 는 File 류 가 아 닌 MultipartFile 을 사용 해 야 합 니 다.FileUtils.copyFile()을 사용 하여 파일 을 복사 할 수 없 기 때문에 스 트림 으로 디스크 에 출력 합 니 다.
단일 파일 다 중 파일 은 단일 파일 에서 전 달 된 file 매개 변 수 를 배열 형식 으로 바 꾸 고 방법 내 file 과 관련 된 작업 을 모두 배열 로 바 꾸 면 됩 니 다.
단일 파일 업로드
흐름 을 사용 하지 않 아 도 된다.아래 에 있 는 이 말 은 누군가가 사용 하 는 것 을 보 았 지만 테스트 가 없 었 다.
File dest = new File(filePath + fileName); file.transferTo(dest);

@RequestMapping("testUpload")
  public String testUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile file) throws IOException {
    System.out.println("    :" + desc);
    //         
    InputStream inputStream = file.getInputStream();
    //           img.png/hh.docx
    String fileName = file.getOriginalFilename();
    //    
    OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);
    //    
    byte[] bs = new byte[1024];
    int len = -1;
    while ((len = inputStream.read(bs)) != -1) {
      outputStream.write(bs,0,len);
    }
    inputStream.close();
    outputStream.close();
    return "success";
  }
다 중 파일 업로드

@RequestMapping("testMutiUpload")
  public String testMutiUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile[] files) throws IOException {
    System.out.println("    :" + desc);
    for (MultipartFile file :
        files) {
      InputStream inputStream = file.getInputStream();
      String fileName = file.getOriginalFilename();
      OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);
      byte[] bs = new byte[1024];
      int len = -1;
      while ((len = inputStream.read(bs)) != -1) {
        outputStream.write(bs,0,len);
      }
      inputStream.close();
      outputStream.close();
    }
    return "success";
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기