使用springboot上传文件至nginx代理服务器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用springboot上传文件至nginx代理服务器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2224字,纯文字阅读大概需要4分钟。
内容图文
nginx配置图片服务器
server { listen 8001; server_name image.xxx.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { # 放置物理路径 root C:\\zysuyuan\\image; } }
一、编写application.yml
server:
port: 8082
spring:
application:
name: upload-service
servlet:
multipart:
max-file-size: 5MB
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
instance:
lease-renewal-interval-in-seconds: 5 # 心跳时间5s
lease-expiration-duration-in-seconds: 15 # 过期时间15s
二、编写Controller
@Controller @RequestMapping("upload") publicclass UploadController { @Autowired private UploadService uploadService; @PostMapping("image") public ResponseEntity<String> uploadImage(@RequestParam("file")MultipartFile file){ String url = this.uploadService.uploadImage(file); if (StringUtils.isBlank(url)){ return ResponseEntity.badRequest().build(); } return ResponseEntity.status(HttpStatus.CREATED).body(url); } }
三、编写Service
@Service public class UploadService { // 制作文件的白名单,使用Arrays.asList列出一个常量的字符串 private static final List<String> CONTENT_TYPES = Arrays.asList("image/gif","image/jpeg","image/png"); // 定义输出错误日志privatestaticfinal Logger LOGGER = LoggerFactory.getLogger(UploadService.class); public String uploadImage(MultipartFile file) { // 获取文件类型 String originalFilename = file.getOriginalFilename(); try { // 校验文件类型 // 列出所有文件合法类型 String contentType = file.getContentType(); if (!CONTENT_TYPES.contains(contentType)){ LOGGER.info("文件类型不合法:{}",originalFilename); returnnull; } // 校验文件的内容,ImageIO读取文件内容 BufferedImage bufferedImage = ImageIO.read(file.getInputStream()); if (bufferedImage == null) { LOGGER.info("文件内容不合法:{}",originalFilename); returnnull; } // 保存到服务器 file.transferTo(new File("C:\\zysuyuan\\image\\" + originalFilename)); // 返回url,进行回显return "http://image.xxx.com/" + originalFilename; } catch (IOException e) { LOGGER.info("服务器内部错误:" + originalFilename); e.printStackTrace(); } returnnull; } }
测试:使用Advanced-REST-client进行文件上传测试
链接:https://pan.baidu.com/s/10Ax3eSY5zCwRRMHBDI-1sw
提取码:cjhq
最后,可以通过访问nginx配置的web服务器,访问对于图片的url来测试文件是否上传成功。
原文:https://www.cnblogs.com/flypig666/p/11747548.html
内容总结
以上是互联网集市为您收集整理的使用springboot上传文件至nginx代理服务器全部内容,希望文章能够帮你解决使用springboot上传文件至nginx代理服务器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。