ladysosoli
2018-11-21 03:28
采纳率: 100%
浏览 1.8k
已采纳

springboot上传文件的数量不确定,怎样确定参数

在之前测试用单个文件上传时,确定了两个参数、一个是文件本身、一个是目标地址的文件夹名称。
上传的文件要和固定的文件夹名称对应。

 public String upload(@RequestParam("file") MultipartFile file, @RequestParam("name") String targetMicroServiceName)

现在想要优化代码到上传多个文件,此时出现了一个问题:就是每一次上传文件的数量不一,有时会上传一个文件,有时上传多个文件,有时上传全部文件。怎样在传递的参数中体现这种形式?
开始的时候我想传递多个文件,就写成file1,file2,name1,name2这种形式,但如果文件数量不固定的话,这种形式就不能要了,请问大神怎样修改

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

7条回答 默认 最新

  • ladysosoli 2018-11-23 07:11
    最佳回答
    public String handleFileUpload(HttpServletRequest request,@RequestParam("names") String[] name) {
        MultipartHttpServletRequest params = ((MultipartHttpServletRequest) request);
        List<MultipartFile> files = params.getFiles("file");
        System.out.println("files" + files);
        //接收前端传过来的字段
        MultipartFile file = null;
        //先设置一个数组来装file路径
        List jars = new ArrayList();
        //设置文件路径
        final String firstPathName = addressConfig.getFirstPath();
        for (int i = 0; i < files.size(); ++i) {
            file = files.get(i);
            if (!file.isEmpty()) {
                try {
                    byte[] bytes = file.getBytes();
                    // 获取文件名
                    String origFileName = file.getOriginalFilename();
                    //文件路径
                    Path path = Paths.get(firstPathName + origFileName);
                    System.out.println("lj: " + path);
                    jars.add(path);
                    //如果没有files文件夹,则创建
                    if (!Files.isWritable(path)) {
                        Files.createDirectories(Paths.get(firstPathName));
                    }
                    //文件写入指定路径
                    Files.write(path, bytes);
                                        }
                                         } catch (Exception e) {
                    return "文件上传失败 " + i + " => " + e.getMessage();
                }
            } else {
                return "文件上传失败 " + i + " because the file was empty.";
            }
            System.out.println("mz:" + name[i]);
        }
        return "文件上传成功";
    }
    
    
    ```**_用数组_**
    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
查看更多回答(6条)

相关推荐 更多相似问题