首页 > Web开发 > 详细

一次提交,多文件上传

时间:2017-01-24 16:03:55      阅读:168      评论:0      收藏:0      [点我收藏+]

private List<FileUploadBean> upload(HttpServletRequest request, HttpServletResponse response) {

        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());

        String srcName = Constants.BLANK;

        // 需要处理
        if (!multipartResolver.isMultipart(request)) {
            throw new AppException("999999", "图片上传失败");
        }

        MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
        Iterator<String> iter = multiRequest.getFileNames();

        System.out.println(multiRequest.getMultiFileMap());

        String tmpPath = CcjoinPropVarUtils.getStringProp("img.upload.path");

        File parent = new File(tmpPath);

        if (!parent.exists()) {
            parent.mkdirs();
        }

        List<FileUploadBean> result = new ArrayList<FileUploadBean>();

        while (iter.hasNext()) {

    //注意这里是getFile方法是获取第一个文件,而getFiles方法才是获取多个文件
            List<MultipartFile> fileList = multiRequest.getFiles(iter.next());

            if (CheckUtils.isNull(fileList)) {
                continue;
            }

            for (MultipartFile file : fileList) {

                srcName = file.getOriginalFilename();

                String fileName = UUID.randomUUID() + FileUtils.getFileExt(srcName);

                File srcFile = new File(tmpPath + fileName);

                BufferedOutputStream stream = null;

                InputStream in = null;
                try {
                    in = file.getInputStream();
                    stream = new BufferedOutputStream(new FileOutputStream(srcFile));

                    byte[] b = new byte[2048];
                    int len = 0;
                    while ((len = in.read(b)) != -1) {
                        stream.write(b, 0, len);
                    }

                    FileUtils.flush(stream);
                    result.add(new FileUploadBean(srcName, tmpPath, fileName));

                } catch (Exception e) {
                    throw new AppException(e);
                } finally {
                    FileUtils.close(in);
                    FileUtils.close(stream);
                }
            }
        }

        return result;
    }

一次提交,多文件上传

原文:http://www.cnblogs.com/wzk-0000/p/6347237.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!