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

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条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程