Struts文件上传与下载详解 _上传多个文件

简介: Struts文件上传与下载详解 _上传多个文件


    在上一篇中给大家列出的单个文件的上传,那么这一篇咱们讲讲上传多个文件改怎么作呢?由于过程和上传单个文件的类似,所以在这里不细说,相信大家都能看懂,看不懂的可以在评论区留言,我看到之后会及时回复的!!

   咱们开门见山的来吧

1.创建个jsp表单页面,主要就是上传多个文件:


<body>
   
    
    <s:form action="upload.action" method="post" enctype="multipart/form-data">
      <s:textfield name="file" label="标题"/><br/>
      <%-- <s:file name="upload" label="选择文件"/><br/> --%>
      <s:file name="mupload" label="选择文件1"/><br/>
      <s:file name="mupload" label="选择文件2"/><br/>
      <s:file name="mupload" label="选择文件3"/><br/>
      <s:submit name="submit" value="上传文件"/>
    </s:form>
  </body>


2.我们接下来去写一下UploadAction里面:

package org.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
  
  
  private File[] mupload;                       //封装上传文件的属性(多个)
  private String[] muploadContentType;          //封装上传文件的类型(多个)
  private String[] muploadFileName;             //封装上传文件的名称(多个)
  private String msavePath;                     //获取文件上传的路径(多个)
  
  
  //实现文件的多个上传
  public String execute() throws IOException{
    byte[] buffer=new byte[1024];
    for (int i = 0; i < mupload.length; i++) {
      //获取物理路径"/upload"
      String path=ServletActionContext.getServletContext().getRealPath(savePath);
      FileInputStream fis=new FileInputStream(getMupload()[i]);
      FileOutputStream fos=new FileOutputStream(path+"/"+getMuploadFileName()[i]);
      int length=fis.read(buffer);
      while (length>0) {
        //每次写入length长度的内容
        fos.write(buffer,0,length);
        length=fis.read(buffer);
      }
      fis.close();
      fos.flush();
      fos.close();
    }
    return SUCCESS;
  }
  
  
  
  public File[] getMupload() {
    return mupload;
  }
  public void setMupload(File[] mupload) {
    this.mupload = mupload;
  }
  public String[] getMuploadContentType() {
    return muploadContentType;
  }
  public void setMuploadContentType(String[] muploadContentType) {
    this.muploadContentType = muploadContentType;
  }
  public String[] getMuploadFileName() {
    return muploadFileName;
  }
  public void setMuploadFileName(String[] muploadFileName) {
    this.muploadFileName = muploadFileName;
  }
  public String getMsavePath() {
    return msavePath;
  }
  public void setMsavePath(String msavePath) {
    this.msavePath = msavePath;
  }
  
  
}


3.nice,这里面已经搞定,咱们就移步到struts.xml里面配置一下就可以了

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  
  
  <package name="default" namespace="/" extends="struts-default">
    
    
    <!-- 文件上传 -->
    <action name="upload" class="org.web.UploadAction">
      <param name="savePath">/upload</param>
      <result name="success">/upload_suc.jsp</result>
    </action>
    
    
  </package>
</struts>

   最后发布运行就OK了。

相关文章
|
6月前
SpringMVC之文件上传和下载
【1月更文挑战第20天】SpringMVC之文件上传和下载
43 1
|
6月前
|
Java
Struts文件上传与下载详解_上传单个文件
Struts文件上传与下载详解_上传单个文件
|
6月前
|
存储 前端开发 Java
SpringMVC 文件上传和下载
SpringMVC 文件上传和下载
32 0
|
6月前
|
Java
Struts文件上传与下载详解_文件的下载
Struts文件上传与下载详解_文件的下载
|
前端开发 Java Apache
文件上传与下载
文件上传与下载 文件上传也称为upload,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。 文件上传时,对页面的form表单有如下要求: method=“post” 采用post方式提交数据 enctype=“multipart/form-data” 采用multipart格式上传文件 type=“file” 使用input的file控件上传
Struts文件上传与下载详解 _上传多个文件
Struts文件上传与下载详解 _上传多个文件
|
JSON 前端开发 Java
springmvc文件的上传和下载
springmvc文件的上传和下载
148 0
springmvc文件的上传和下载
|
前端开发 Java Maven
【SpringMVC 从 0 开始】文件上传和下载
【SpringMVC 从 0 开始】文件上传和下载
【SpringMVC 从 0 开始】文件上传和下载
|
前端开发 Java Maven
SpringMVC文件上传与下载
SpringMVC文件上传与下载