环境是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);
}