nginx代理图片上传以及访问

时间:2022-04-24 14:46:55

nginx代理图片上传

首先需要利用nginx代理图片访问参考

https://www.cnblogs.com/TJ21/p/12609017.html

编写接受文件的controller

 @PostMapping("image")
public ResponseEntity<String> uploadImage(MultipartFile file){ String url = null;
try {
url = uploadService.uploadImages(file);
} catch (IOException e) {
e.printStackTrace();
}
if (StringUtils.isBlank(url)){
return ResponseEntity.status(HttpStatus.CREATED).build();
} return ResponseEntity.ok(url);
}

编写上传文件的service

白名单参照:

https://tool.oschina.net/commons

  //创建文件上传类型白名单
private static final List<String> CONTENT_TYPE = Arrays.asList("image/jpeg", "image/gif");
//创建日志常量对象
private static final Logger LOGGER = LoggerFactory.getLogger(UploadServiceImpl.class); /**
* 文件上传方法
*
* @param file
* @return
*/
@Override
public String uploadImages(MultipartFile file) { //判断是否为图片文件
//获取文件名
String originalFilename = file.getOriginalFilename();
//获取文件上传类型
String contentType = file.getContentType();
//判断是否为白名单中的类型
if (!CONTENT_TYPE.contains(contentType)) {
//输出日志为什么错误1.创建日志常量2.输出原因
LOGGER.info("文件类型不合法 {}", originalFilename);
return null;
}
//判断文件内容
try {
BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
if (bufferedImage != null) {
//保存
file.transferTo(new File("E:\\image\\" + originalFilename));
}
//返回访问路径
return "http://image.leyou.com/" + originalFilename;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

测试上传文件-->此处使用Advanced Rest Application测试

nginx代理图片上传以及访问

用返回路径测试是否可以访问当前上传的图片

http://image.leyou.com/IMG_20180614_134202.jpg

访问成功

nginx代理图片上传以及访问