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

  • 相关阅读:
    [转]boost.bind 如何 bind continue.1
    Maven configure settins.xml
    JUNIT测试通过,EMMA通不过,java.lang.NoClassDefFoundError: oracle/security/pki/OracleWallet
    java中OOA,OOT, OOP, OOD, OOSM,OOM英文表示的含义是什么?
    关于navicat连接oracle 报 ORA12737 set CHS16GBK错误的解决方案
    configure integration Hibernate3,Spring3,Struts2,JPA
    Proguard returned with error code 1. See console
    Spring内置提供的NativeJdbcExtractor转换器
    oracle opreation instruction(表空间,用户etc)
    Struts2,oracle实现GOOGLE的分页样式
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/6347237.html
Copyright © 2011-2022 走看看