nginx代理图片上传以及访问

Posted 雨听风说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx代理图片上传以及访问相关的知识,希望对你有一定的参考价值。

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

访问成功

 

以上是关于nginx代理图片上传以及访问的主要内容,如果未能解决你的问题,请参考以下文章

nginx 无法访问图片问题

nginx反向代理

关于Tomcat和Nginx图片上传以及访问的路径问题

图片上传nginx代理上传图片

Nginx# 上传图片大小限制反向代理MySQL反向代理Redis

Nginx# 上传图片大小限制反向代理MySQL反向代理Redis