Struts2系统学习(11)多文件上传

本文介绍使用Struts2框架实现多文件上传的方法,包括HTML表单设计与Action类的编写,并提供了一种通过数组处理多个文件的方式。

11. 多文件上传

  多文件上传类似与单文件上传。下面直接通过案例说明。
  (1)提交表单:

<form action="/Struts2Study/uploadFiles.action" enctype="multipart/form-data" method="post">
    文件1:<input name="uploadFile" type="file"><br>
    文件2:<input name="uploadFile" type="file"><br>
    文件3:<input name="uploadFile" type="file"><br>
    <input type="submit" value="上传文件">
</form>

  (2)Action类:

public class UploadFilesAction {
//  private List<File> uploadFile;
//  private List<String> uploadFileContentType;
//  private List<String> uploadFileFileName;
    private File[] uploadFile;
    private String[] uploadFileContentType;
    private String[] uploadFileFileName;
    // 省略了set和get方法
    public String uploadFiles() throws IOException {
        String pathname = ServletActionContext.getServletContext().getRealPath("/files2");
        System.out.println(pathname);
        if (uploadFile != null && uploadFile.length > 0) {
            File destDir = new File(pathname);
            if (!destDir.exists()) {
                destDir.mkdirs();
            }
            for(int i = 0; i < uploadFile.length; i++) {
                FileUtils.copyFile(uploadFile[i], new File(destDir, uploadFileFileName[i]));
            }
        }
        return "message";
    }
}

  其他的和单文件上传类似,只是将action的对应文件属性等改为数组或List类型。多文件上传的另一种方法是,表单中上传文件的input的name不同,对应的action中提供的相应的属性,不过比较麻烦。即:

<form action="/xx/xx.action" enctype="multipart/form-data" method="post">
    文件1:<input name="uploadFile1" type="file"><br>
    文件2:<input name="uploadFile2" type="file"><br>
    <input type="submit" value="上传文件">
</form>

  对应的action:

    private File uploadFile1;
    private File uploadFile2;
    private String uploadFile1FileName;
    private String uploadFile2FileName;


转载请注明出处:http://blog.youkuaiyun.com/mark_lq/article/details/49822989

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sunny Mornings

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值