Swagger和Postman测试上传文件,后台代码处理差异

环境是Springboot后台程序集成web和swagger接收前台文件上传功能。在后台提取上传文件名的时候遇到问题:通过file.getOriginalFilename()提取文件名作为minio的对象名,Postman测试没问题,后台接收的只是文件名称;Swagger上传时候,后台接收到是整个文件的路径名称。

由于在Windows上测试,导致报异常了,暂时的解决方案记录下:

1检测文件名是否包含"\\",如果是的话,将所有的"\\"替换为"/"

2找到路径里的最后一个"/",截取子串

以下是主要代码:

        String fileName = file.getOriginalFilename();
        if(fileName.contains("\\")) {
            fileName = fileName.replace("\\","/");
            //去掉win的盘符,比如"D:/"
            //fileName = fileName.substring(fileName.indexOf(":/")+2);
            fileName = fileName.substring(fileName.lastIndexOf("/")+1);
        }

你可能感兴趣的:(springboot,swagger,上传文件)