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

      

  • 相关阅读:
    洛谷 P1886 滑动窗口 (单调队列)
    Acwing 288.休息时间 (环形DP)
    Acwing 287.积蓄程度 (树形DP换根)
    2020 Multi-University Training Contest 5 Tree (树形DP)
    剑指offer-JZ50-数组中的重复数字(C++)
    假设以下有一个结构体存放的是学生的记录,每条记录包括:学号、姓名、成绩
    剑指offer-JZ48-不用加减乘除做加法(C++)
    剑指offer-JZ51-构建乘积数组
    数据结构与算法->递归
    力扣(LeetCode)试题6-Z字形变换 C++代码
  • 原文地址:https://www.cnblogs.com/qianxinxu/p/6526552.html
Copyright © 2011-2022 走看看