Struts2实现多文件上传

最近做的一个东西里需要实现文件上传的功能,就去偷偷学习了一下,用struts实现,还真着实费了我一番功夫,刚学习,总是出现各种问题!然而,最终还是被我克服,fighting……

效果图如下:
步骤一图:
(https://img-blog.csdn.net/20161020173024467)
步骤二图:
(https://img-blog.csdn.net/20161020172838466)
步骤三图:
(https://img-blog.csdn.net/20161020174212161)

其实整体来说内容来说还是挺简单的,主要需要注意的就是struts.xml的配置

struts.xml

<struts>
    <package name="default" extends="struts-default">
        <action name="upload" class="com.zqq.action.UploadAction">
            <result name="input">/index.jsp</result>
            <result name="success">/success.jsp</result>
        </action>
    </package>
    <constant name="struts.multipart.saveDir" value="/tmp"></constant>
</struts>  

UploadAction.java

package com.zqq.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;



public class UploadAction extends ActionSupport{
   /**
     * 
     */
   private static final long serialVersionUID = 1L;
private List<File> upload;
private List<String> uploadFileName;

public List<File> getUpload() {
    return upload;
}

public void setUpload(List<File> upload) {
    this.upload = upload;
}

public List<String> getUploadFileName() {
    return uploadFileName;
}

public void setUploadFileName(List<String> uploadFileName) {
    this.uploadFileName = uploadFileName;
}

public String execute() throws Exception{
    if(upload!=null){
        for(int i=0;i<upload.size();i++){
            InputStream is=new FileInputStream(upload.get(i));
             OutputStream os=new FileOutputStream("e:\\upload\\"+getUploadFileName().get(i));
             byte buffer[]=new byte[1024];
             int count=0;
             while((count=is.read(buffer))>0){
                 os.write(buffer,0,count);
             }
             os.close();
             is.close();    
        }
    }

    return SUCCESS;
}


}

jsp中重要的代码块:

 <s:form action="upload" method="post" enctype="multipart/form-data">

    <!--  这里上传三个文件,这里可以是任意多个 -->
    <s:file name="upload" label="上传的文件一"></s:file>
    <s:file name="upload" label="上传的文件二"></s:file>
    <s:file name="upload" label="上传的文件三"></s:file>
    <s:submit value="上传"></s:submit>
     </s:form>

已经实现了多文件的上传,当然单个文件的上传就容易多了,此处略!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zqq_2016

有用的话,来打赏博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值