用struts2实现多文件的上传

本文介绍了一个使用Struts2框架实现文件上传的例子。页面包含添加和上传按钮,点击添加按钮可动态增加文件输入框,点击上传按钮则将文件发送至服务器。服务器端采用Struts2拦截器处理文件,并通过UploadsAction类保存文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


要求:页面上有两个按钮,一个为添加按钮,另一个为上传按钮。

当点击添加按钮时,会出现一个文本框和一个浏览按钮,点击浏览按钮,选择文件,文件的路径会在文本框中显示出来。当点击上传按钮时,能够将文件上传到指定的位置。

首先,要建立一个jsp页面

上传的文件最大为2兆

   <div align="center">

        <form action="${pageContext.request.contextPath}/upFiles.action" enctype="multipart/form-data"method="post">

           上传文件:<br/>

          

           <div id="ul">

              

           </div>

           <input type="submit" value="上传"/>

        </form>

        <input type="button" id="btn"name="btn" value="添加"/>

   </div>

  </body>

</html>

<<script type="text/javascript">

<!--

    $(document).ready(function(){

       $("#btn").click(function(){

           //创建input

           var$input=$("<input type='file' name='upload'>");

           var$br=$("<br/>");

           $("#ul").append($input);

           $("#ul").append($br);

       });

    });

//-->

</script>

注:记得要引入jQuery类库文件

 <script type="text/javascript" src="./js/jquery-1.7.1.js"></script>

 

struts.xml文件

<action name="upFiles"class="cn.csdn.hr.action.UploadsAction" method="uploads" >

       <result>./ul.jsp</result>

    </action>

 

由上面的struts.xml文件可知,下面要调用包cn.csdn.hr.action下面的UploadsAction.class类中的uploads方法,并且将返回ul.jsp页面

 

UploadsAction.class

//规定

    private File upload[];//上传文件

    //上传文件的类型

    private String uploadContentType[];//名字必须是这个

    //上传文件的名称

    private String uploadFileName[];//名字必须是这个

    public File[] getUpload() {

       return upload;

    }

    public void setUpload(File[] upload) {

       this.upload = upload;

    }

    public String[] getUploadContentType() {

       return uploadContentType;

    }

    public void setUploadContentType(String[] uploadContentType) {

       this.uploadContentType = uploadContentType;

    }

    public String[] getUploadFileName() {

       return uploadFileName;

    }

    public void setUploadFileName(String[] uploadFileName) {

       this.uploadFileName = uploadFileName;

    }

    public String uploads(){

       String path=ServletActionContext.getServletContext().getRealPath("/ims");

       System.out.println(path);

       File file=new File(path);

       //判断file文件是否存在

       if(!file.exists()){

           file.mkdirs();

       }

       //第一个是准备上传的文件    第二个是上传到哪

       try{

           for(int i=0;i<upload.length;i++){

             

              FileUtils.copyFile(upload[i], new File(file,uploadFileName[i]));

           }

          

       }catch(IOException e){

           e.printStackTrace();

       }

       System.out.println("上传文件 的名称:"+getUploadFileName()+"===================上传文件的类型"+getUploadContentType());

       return SUCCESS;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值