nginx代理圖片上傳
首先需要利用nginx代理圖片訪問參考
https://www.cnblogs.com/TJ21/p/12609017.html
編寫接受文件的controller
1 @PostMapping("image") 2 public ResponseEntity<String> uploadImage(MultipartFile file){ 3 4 String url = null; 5 try { 6 url = uploadService.uploadImages(file); 7 } catch (IOException e) { 8 e.printStackTrace(); 9 } 10 if (StringUtils.isBlank(url)){ 11 return ResponseEntity.status(HttpStatus.CREATED).build(); 12 } 13 14 return ResponseEntity.ok(url); 15 }
編寫上傳文件的service
白名單參照:
https://tool.oschina.net/commons
1 //創建文件上傳類型白名單 2 private static final List<String> CONTENT_TYPE = Arrays.asList("image/jpeg", "image/gif"); 3 //創建日志常量對象 4 private static final Logger LOGGER = LoggerFactory.getLogger(UploadServiceImpl.class); 5 6 /** 7 * 文件上傳方法 8 * 9 * @param file 10 * @return 11 */ 12 @Override 13 public String uploadImages(MultipartFile file) { 14 15 //判斷是否為圖片文件 16 //獲取文件名 17 String originalFilename = file.getOriginalFilename(); 18 //獲取文件上傳類型 19 String contentType = file.getContentType(); 20 //判斷是否為白名單中的類型 21 if (!CONTENT_TYPE.contains(contentType)) { 22 //輸出日志為什么錯誤1.創建日志常量2.輸出原因 23 LOGGER.info("文件類型不合法 {}", originalFilename); 24 return null; 25 } 26 //判斷文件內容 27 try { 28 BufferedImage bufferedImage = ImageIO.read(file.getInputStream()); 29 if (bufferedImage != null) { 30 //保存 31 file.transferTo(new File("E:\\image\\" + originalFilename)); 32 } 33 //返回訪問路徑 34 return "http://image.leyou.com/" + originalFilename; 35 } catch (IOException e) { 36 e.printStackTrace(); 37 } 38 return null; 39 }
測試上傳文件-->此處使用Advanced Rest Application測試
用返回路徑測試是否可以訪問當前上傳的圖片
http://image.leyou.com/IMG_20180614_134202.jpg
訪問成功