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

  • 相关阅读:
    broncho a1 hack指南-准备硬件
    嵌入式GUI ftk0.1发布
    ASP.net页面防刷新
    C#反射入门教程(转)
    万物生萨顶顶
    [转载内容]C# win程序中主窗体菜单的权限控制
    VB.net技巧更新(一)
    XML与dataset里相互读取操作
    操作EXCEL代码(c#完全版)
    [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/6347237.html
Copyright © 2011-2022 走看看