commons-fileupload 多文件上传

<form action="upload/testupload" enctype="multipart/form-data"
            method="post">
            <input type="file" name="file" multiple="multiple" /><input
                type="submit" value="submit" />
        </form>
<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.3.1</version>
</dependency>
public final void upload() throws Exception {

        final StringBuilder result = new StringBuilder();
        final DiskFileItemFactory dfif = new DiskFileItemFactory();
        final ServletFileUpload sfu = new ServletFileUpload(dfif);
        // 对requests对象进行解析,并把表单中的每一个输入项包装成一个fileItem对象,并返回一个保存了所有FileItem的list集合.
        final List<FileItem> fileItems = sfu.parseRequest(getRequest());
        final Iterator<FileItem> iter = fileItems.iterator();
        final String path = "F:/resources/Test/";
        FileItem item = null;
        String name = null;
        int error = 0;
        int length = 0;
        // 设置内存缓冲区的大小,默认值为10K,如果文件大于10K,将使用临时文件缓存上传文件.
        dfif.setSizeThreshold(10 * 1024);
        dfif.setRepository(new File(path));
        // 设置上传文件总量的最大值 500M
        sfu.setSizeMax(500 * 1024 * 1024);
        // 设置上传文件最大值 其中文件大小只要有一个超过 (100M) ,1024KB==1M 所有文件将不能上传
        sfu.setFileSizeMax(100 * 1024 * 1024);
        result.append("{\"files\":[");
        while (iter.hasNext()) {
            System.out.println(iter.hasNext());
            item = iter.next();
            if (!item.isFormField()) {
                length++;
                name = item.getName();
                name = System.currentTimeMillis() + name.substring(name.lastIndexOf("."), name.length());
                result.append("\"").append(name).append("\"").append(!iter.hasNext() ? "" : ",");
                item.write(new File(path + name));
            }
        }
        result.append("],\"error\":").append(error).append(",\"success\":").append(length - error)
                .append(",\"path\":\"").append(path).append("\"}");
        renderJson(result.toString());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值