nginx代理图片上传

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

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

编写接受文件的controller

  1. 1 @PostMapping("image")
  2. 2 public ResponseEntity<String> uploadImage(MultipartFile file){
  3. 3
  4. 4 String url = null;
  5. 5 try {
  6. 6 url = uploadService.uploadImages(file);
  7. 7 } catch (IOException e) {
  8. 8 e.printStackTrace();
  9. 9 }
  10. 10 if (StringUtils.isBlank(url)){
  11. 11 return ResponseEntity.status(HttpStatus.CREATED).build();
  12. 12 }
  13. 13
  14. 14 return ResponseEntity.ok(url);
  15. 15 }

编写上传文件的service

白名单参照:

https://tool.oschina.net/commons

  1. 1 //创建文件上传类型白名单
  2. 2 private static final List<String> CONTENT_TYPE = Arrays.asList("image/jpeg", "image/gif");
  3. 3 //创建日志常量对象
  4. 4 private static final Logger LOGGER = LoggerFactory.getLogger(UploadServiceImpl.class);
  5. 5
  6. 6 /**
  7. 7 * 文件上传方法
  8. 8 *
  9. 9 * @param file
  10. 10 * @return
  11. 11 */
  12. 12 @Override
  13. 13 public String uploadImages(MultipartFile file) {
  14. 14
  15. 15 //判断是否为图片文件
  16. 16 //获取文件名
  17. 17 String originalFilename = file.getOriginalFilename();
  18. 18 //获取文件上传类型
  19. 19 String contentType = file.getContentType();
  20. 20 //判断是否为白名单中的类型
  21. 21 if (!CONTENT_TYPE.contains(contentType)) {
  22. 22 //输出日志为什么错误1.创建日志常量2.输出原因
  23. 23 LOGGER.info("文件类型不合法 {}", originalFilename);
  24. 24 return null;
  25. 25 }
  26. 26 //判断文件内容
  27. 27 try {
  28. 28 BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
  29. 29 if (bufferedImage != null) {
  30. 30 //保存
  31. 31 file.transferTo(new File("E:\\image\\" + originalFilename));
  32. 32 }
  33. 33 //返回访问路径
  34. 34 return "http://image.leyou.com/" + originalFilename;
  35. 35 } catch (IOException e) {
  36. 36 e.printStackTrace();
  37. 37 }
  38. 38 return null;
  39. 39 }

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

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

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

访问成功

nginx代理图片上传以及访问 nginx 图片上传完整版的更多相关文章

  1. Nginx代理实现内网主机访问公网服务

    通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...

  2. 单机部署minio,设置Nginx代理,配置https(TLS)访问

    安装 下载地址:https://dl.min.io/ # 创建目录 mkdir -p /usr/local/minio/{data,bin,etc} # 下载minio wget https://dl ...

  3. WebSocket 结合 Nginx 实现域名及 WSS 协议访问-Nginx配置

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. 用反向代理nginx proxy_pass配置解决ie8 ajax请求被拦截问题 ie8用nginx代理实现跨域请求访问 nginx405正向代理request_uri

    最近调PC版网站ie8的兼容性,发现所有ajax请求还没到后端服务器就直接ajax error了 ie8发不出ajax请求,断点调试发现ajax全进入了error,提示“No transport” 我 ...

  5. 宝塔搭建的nginx如何只允许指定IP访问--nginx如何允许指定IP访问,nginx开发者调试模式

    我的博客,向来都是简洁.有用为主,转载请注明出处. 说白了就是往nginx配置文件中加两句话 allow 127.0.0.1; deny all; 允许127.0.0.1访问 然后拒绝其他连接,返回4 ...

  6. 【zz】史上最全设计模式导学目录(完整版)

    2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 +  简单工厂模式),为了方便大家 ...

  7. 使用springboot上传文件至nginx代理服务器

    nginx配置图片服务器 server { listen 8001; server_name image.xxx.com; proxy_set_header X-Forwarded-Host $hos ...

  8. Linux下使用Nginx代理访问json文件报404错误

    在网上看了很多,都说是IIS的问题,关键是使用servlet就可以正常访问,使用Nginx就不行,最后发现是其他问题,解决方案如下: 1.确认配置的路径是否正确,Nginx代理的路径和你访问的路径. ...

  9. 第十四章 nginx代理配置

    一.nginx代理 1.常见模式 1.常见模式:1)正向代理2)反向代理​2.区别1)区别在于形式上服务的"对象"不一样2)正向代理代理的对象是客户端,为客户端服务3)反向代理代理 ...

随机推荐

  1. 解决用creact-react-app新建React项目不支持 mobx装饰器模式导致报错问题 。

    创建react项目 create-react-app mobx-demo cd my-app npm run start 使用react-app-rewired npm install customi ...

  2. time_formatter(uaf)

    拿到题目先例行检查 然后进入主函数查看程序流程, 进入函数 这些字符串对我们选择1的输入进行了限制 在输入里面,可以看到strdup这个关键性的函数 调用了malloc这个函数 在选择四里面,可以看到 ...

  3. Notepad++ 常用功能:批量取消替换换行、强制刷新数据

    批量取消替换换行 换行批量替换成空格 Ctrl+F 打开查找替换窗口,使用:\r\n 替换成 空格,全部替换 强制刷新数据源,重新加载数据 快捷键:Ctrl+R 或者 Alt+F 然后 L 或者点击菜 ...

  4. 面试官:HashSet如何保证元素不重复?

    本文已收录<Java常见面试题>系列,Git 开源地址:https://gitee.com/mydb/interview HashSet 实现了 Set 接口,由哈希表(实际是 HashM ...

  5. 自己实现一个Electron跨进程消息组件

    我们知道开发Electron应用,难免要涉及到跨进程通信,以前Electron内置了remote模块,极大的简化了跨进程通信的开发工作,但这也带来了很多问题,具体的细节请参与我之前写的文章: http ...

  6. shell判断新字符串列表是否在老字符串列表中

    for sn in `cat 12.30-new`;do if ! [[ `cat 12.30-old` =~ $sn ]];then echo $sn; fi; done

  7. cmake命令行生成32位和64位项目

    概述 本文演示环境: win10 + VS2017 1.指定变量值 咱们常用命令[cmake ..]在build目录下配置生成项目和解决方案. 其实,这个命令还有其他用法. 指定CMakeLists. ...

  8. 【LeetCode】406. Queue Reconstruction by Height 解题报告(Python & C++ & Java)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  9. 【LeetCode】463. Island Perimeter 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 减去相交部分 参考资料 日期 题目地址:https: ...

  10. 【剑指Offer】反转链表 解题报告(Python)

    [剑指Offer]反转链表 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...