zoukankan      html  css  js  c++  java
  • 一次提交,多文件上传

    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;
        }

  • 相关阅读:
    SQL时间戳的使用
    Java中利用MessageFormat对象实现类似C# string.Format方法格式化
    XML中PCDATA与CDATA的区别
    树行控件TreeView 在WinForm下 怎么实现重命名功能
    PHP+MySQL存储数据出现中文乱码的问题
    C#创建一个Windows Service
    SQL2008配置管理工具服务显示远程过程调用失败
    C#如何以管理员身份运行程序
    在APACHE服务器上的访问方式上去除index.php
    开发winform程序,在拖拽控件大小时,VS会卡死
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/6347237.html
Copyright © 2011-2022 走看看