Struts2实现多文件上传

来源:互联网 发布:搞笑淘宝买家丝袜秀 编辑:程序博客网 时间:2024/05/17 00:58

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

效果图如下:
步骤一图:
(http://img.blog.csdn.net/20161020173024467)
步骤二图:
(http://img.blog.csdn.net/20161020172838466)
步骤三图:
(http://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
原创粉丝点击