zoukankan      html  css  js  c++  java
  • java利用MultipartRequest的getFileName方法不能得到原文件名问题

    想利用MultipartRequest的getFileName方法来一次获取多个上传的文件名字时,得到的不是文件的名字,而是 input 的name属性

    最后找到了答案,解决方法,参照http://stackoverflow.com/questions/13946859/retrieve-the-file-name-while-using-file-type-input

    原来的代码

       @RequestMapping(value = {"multipleFileUpload"}, method =  {RequestMethod.GET, RequestMethod.POST})
        public  String multipleFileUpload(
                ModelMap modelMap,
                MultipartHttpServletRequest request,
                HttpServletResponse response) throws IOException {
            Iterator<String> itr =  request.getFileNames();
            while(itr.hasNext()){
                String str = itr.next();    //这个文件并不是原来的文件名
                multipartFile = (CommonsMultipartFile)request.getFile(str);
                MultipartFile mpf = request.getFile(str);
                InputStream is = mpf.getInputStream();
                byte[] bytes = IOUtils.toByteArray(is);
                CompressWorker worker = new CompressWorker(statusMap, bytes, str, compressSize, jobId);
                worker.start();
            }
            modelMap.addAttribute("json", new ReturnMap("线程已经启动"));
            return "json";
        }
    

      

    修改后的代码

       @RequestMapping(value = {"multipleFileUpload"}, method =  {RequestMethod.GET, RequestMethod.POST})
        public  String multipleFileUpload(
                ModelMap modelMap,
                MultipartHttpServletRequest request,
                HttpServletResponse response) throws IOException {
            CommonsMultipartFile multipartFile = null;
            Iterator<String> itr =  request.getFileNames();
            while(itr.hasNext()){
                String str = itr.next();
                multipartFile = (CommonsMultipartFile)request.getFile(str);
                String fileName = multipartFile.getOriginalFilename();   //原文件名
                MultipartFile mpf = request.getFile(str);
                InputStream is = mpf.getInputStream();
                byte[] bytes = IOUtils.toByteArray(is);
                CompressWorker worker = new CompressWorker(statusMap, bytes, fileName, compressSize, jobId);
                worker.start();
            }
            modelMap.addAttribute("json", new ReturnMap("线程已经启动"));
            return "json";
        }
    

      

  • 相关阅读:
    Win10安装.NetFamework3.5
    SAN和NAS的区别
    raid10模型比raid01模型的冗余度高
    Linux——查找占用磁盘体积最大的前10个文件
    Nginx——端口负载均衡
    oneinstack——证书更新
    SpringBoot——IDEA使用 Spring Initializer快速创建项目【四】
    Nginx——请求head被过滤
    Linux—— 记录所有登陆用户的历史操作记录
    Nginx——跨域造成的504问题
  • 原文地址:https://www.cnblogs.com/qianxinxu/p/6526552.html
Copyright © 2011-2022 走看看