Rumah > Java > javaTutorial > teks badan

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

WBOY
Lepaskan: 2023-05-22 15:25:06
ke hadapan
1008 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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;
  }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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;
  }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan