yaml中的配置
file-save-path: D:/uploadFile/
将上传文件转成url链接形式,接口代码
@Value("${file-save-path}") private String fileSavePath; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
ArrayList<String> mylist=new ArrayList(); @PostMapping("/uploads") public ArrayList uploads(@RequestParam(value = "file",required = false) MultipartFile[] uploadFiles, HttpServletRequest req) { String filePath = ""; for(MultipartFile uploadFile:uploadFiles){ String format = sdf.format(new Date()); File folder = new File(fileSavePath + format); if (!folder.isDirectory()) { folder.mkdirs(); } String oldName = uploadFile.getOriginalFilename(); String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf("."), oldName.length()); try { uploadFile.transferTo(new File(folder, newName)); filePath = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/uploadFile/" + format + newName; } catch (IOException e) { e.printStackTrace(); } mylist.add(filePath); } return mylist; }
配置静态资源映射
@Configuration public class WebConfig implements WebMvcConfigurer { /** * 图片保存路径,自动从yml文件中获取数据 * 示例: E:/images/ */ @Value("${file-save-path}") private String fileSavePath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { /** * 配置资源映射 * 意思是:如果访问的资源路径是以“/images/”开头的, * 就给我映射到本机的“E:/images/”这个文件夹内,去找你要的资源 * 注意:E:/images/ 后面的 “/”一定要带上 */ registry.addResourceHandler("/uploadFile/**") .addResourceLocations("file:"+fileSavePath); } }