>  기사  >  Java  >  Java 개발 시 Spring Webflow에서 단일 파일과 여러 파일을 업로드하는 기능을 구현하는 방법

Java 개발 시 Spring Webflow에서 단일 파일과 여러 파일을 업로드하는 기능을 구현하는 방법

WBOY
WBOY앞으로
2023-05-22 15:25:061021검색

단일 파일 업로드

준비

1. 프로젝트에서 스프링 보안을 사용하는 경우 이전 기사를 참조하여 이전 기사의 두 번째 방법을 사용하고 MultipartFilter(구성된 경우)를 제거합니다. , 파일을 얻을 수 없습니다

2. 프로세스의 변수(예: var 태그로 정의된 변수)는 직렬화 가능 인터페이스를 구현해야 합니다.

구현 프로세스

pom.xml 파일에 다음 종속성을 추가합니다.

<!-- 支持文件上传 -->
  <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.1</version>
  </dependency>
  <dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
  </dependency>

spring-servlet.xml(Spring MVC 구성 파일)에 파일 업로드 파서를 추가합니다.

<!-- 文件上传解析器-->
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- one of the properties available; the maximum file size in bytes -->
    <property name="maxUploadSize" value="10485760"/>
  </bean>

Entity 클래스, 구현하는 것을 기억하세요. 직렬화 가능한 인터페이스 및 속성 유형은 MultipartFile입니다.

@Component
public class GoodsEntity implements Serializable{
  private static final long serialVersionUID = 1L;
  private MultipartFile images;
  public MultipartFile getImages() {
    return images;
  }
  public void setImages(MultipartFile images) {
    this.images = images;
  }
}

프로세스 정의 코드, 특별한 것은 없습니다:

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/webflow
   http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     <var name="goods" class="com.huanle.model.entity.GoodsEntity"/>
     <view-state id="viewfirst" view="/views/user/releasegoods/release_first.jsp" model="goods">
      <transition on="submit" to="viewsecond"></transition>
     </view-state>
     <view-state id="viewsecond" view="/views/user/releasegoods/second.jsp" model="goods">
      <transition on="submit" to="performReleaseGoodsAction"></transition>
     </view-state>
     <action-state id="performReleaseGoodsAction" >
       <evaluate expression="goodsService.save(goods)"></evaluate>
       <transition to="returntouserindex"></transition>
     </action-state>
     <end-state id="returntouserindex" view="/views/user/seller/index.jsp"></end-state>
     <global-transitions>
      <transition on="cancel" to="returntouserindex"></transition>
     </global-transitions>
</flow>

업로드 양식 코드, 특별한 구성이 필요하지 않습니다:

<form:form action="${flowExecutionUrl}&_eventId=submit&${_csrf.parameterName}=${_csrf.token}" method="post" commandName="goods" enctype="multipart/form-data">
  <input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>
 商品图片:<form:input id="images" path="images" type="file" multiple="multiple" />
 <input type="submit" >
</form:form>

그렇습니다

여러 파일 업로드

단일 파일 업로드 이전에 업로드한 단일 파일을 기반으로 약간의 수정만으로 구현할 수 있습니다.

구현

먼저 여러 파일을 저장하기 위해 List를 사용하여 엔터티 클래스를 수정해야 합니다.

@Component
public class GoodsEntity implements Serializable{
  private static final long serialVersionUID = 1L;
  private List<MultipartFile> images;
  public List<MultipartFile> getImages() {
    return images;
  }
  public void setImages(List<MultipartFile> images) {
    this.images = images;
  }
}

업로드 양식도 수정해야 합니다.

<form:form action="${flowExecutionUrl}&_eventId=submit&${_csrf.parameterName}=${_csrf.token}" method="post" commandName="goods" enctype="multipart/form-data">
  <input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>
商品图片:<form:input path="images" type="file" multiple="multiple"/>
<input type="submit" value="提交">
</form:form>

multiple="multiple"속성을 추가하기만 하면 됩니다.

위 내용은 Java 개발 시 Spring Webflow에서 단일 파일과 여러 파일을 업로드하는 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제