SpringBoot上傳檔案並對映URL訪問
阿新 • • 發佈:2021-11-10
上傳檔案
@PostMapping("/upload") @ApiOperation("檔案上傳") public String uploadImg(MultipartFile file){ if (file.isEmpty()) { System.out.println("上傳的檔案為空!"); } // 檔名 String fileName = file.getOriginalFilename(); // 獲取檔案字尾名 String extension = fileName.substring(fileName.indexOf(".")); // 上傳檔案的路徑 String uploadFolder = "/tmp/nft/uploads/"; // 生成一個新的檔名 fileName = UUID.randomUUID() + extension; File dest = new File(uploadFolder + fileName); // 檢測檔案目錄是否存在 不存在則建立 if (!dest.getParentFile().exists()){ dest.getParentFile().mkdirs(); } try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); throw new CheckException("檔案上傳失敗"); } // 返回虛擬檔案訪問路徑 return "/upload/" + fileName; }
- 上傳到target目錄下
String uploadFolder = this.getClass().getResource("/").getPath() + "/uploads/";
- 上傳到伺服器目錄下
String uploadFolder = "/tmp/nft/uploads/";
配置對映
@Configuration public class UploadConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/upload/**").addResourceLocations("file:/tmp/nft/uploads/"); } }
- file:/tmp/nft/uploads/: 對映到伺服器目錄
- classpath:uploads/:對映到資源目錄