단일 파일 업로드
준비
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!