Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan fungsi memuat naik fail tunggal dan berbilang fail dalam aliran web musim bunga dalam pembangunan java

Bagaimana untuk melaksanakan fungsi memuat naik fail tunggal dan berbilang fail dalam aliran web musim bunga dalam pembangunan java

WBOY
WBOYke hadapan
2023-05-22 15:25:06959semak imbas

Muat naik satu fail

Persediaan

1 Jika anda menggunakan keselamatan spring dalam projek anda, rujuk artikel sebelumnya dan gunakan Kaedah kedua dalam artikel sebelumnya, dan alih keluar MultipartFilter (jika dikonfigurasikan), jika tidak, anda tidak akan mendapat fail

2. Pembolehubah dalam proses (seperti pembolehubah yang ditakrifkan dengan tag var) perlu melaksanakan Serializable antara muka .

Proses pelaksanaan

Tambah kebergantungan berikut pada fail 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>

Dalam spring-servlet.xml (Fail konfigurasi MVC Spring) Tambah penghurai muat naik fail:

<!-- 文件上传解析器-->
   <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>

Kelas entiti, ingat untuk melaksanakan antara muka Serializable, jenis atribut ialah 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;
  }
}

Kod definisi proses, tiada yang istimewa:

<?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>

Muat naik kod borang, tiada konfigurasi khas diperlukan:

<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>

Itu sahaja

Muat naik berbilang fail

Muat naik satu fail boleh dimuat naik di hadapan Ini boleh dicapai dengan pengubahsuaian kecil pada satu fail.

Pelaksanaan

Pertama, kelas entiti perlu diubah suai, menggunakan Senarai untuk menyimpan berbilang fail:

@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;
  }
}

Borang muat naik juga perlu diubah suai:

<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>

cuma tambah atribut multiple="multiple".

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi memuat naik fail tunggal dan berbilang fail dalam aliran web musim bunga dalam pembangunan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam