Zuul文件上传
Posted idoljames
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zuul文件上传相关的知识,希望对你有一定的参考价值。
1、搭建一个eureka-server注册中心工程
该工程比较简洁,没有太多配置,不在描述,单节点,服务端口:8888
2、创建zuul-gateway网关工程
2.1、工程pom依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies>
2.2、工程配置文件:zuul-gatewaysrcmain esourcesootstrap.yml
spring: application: name: zuul-gateway servlet: #spring boot2.0之前是http multipart: enabled: true # 使用http multipart上传处理 max-file-size: 100MB # 设置单个文件的最大长度,默认1M,如不限制配置为-1 max-request-size: 100MB # 设置最大的请求文件的大小,默认10M,如不限制配置为-1 file-size-threshold: 10MB # 当上传文件达到10MB的时候进行磁盘写入 location: / # 上传的临时目录 server: port: 5555 eureka: client: serviceUrl: defaultZone: http://${eureka.host:127.0.0.1}:${eureka.port:8888}/eureka/ instance: prefer-ip-address: true ##### Hystrix默认超时时间为1秒,如果要上传大文件,为避免超时,稍微设大一点 hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 30000 ribbon: ConnectTimeout: 3000 ReadTimeout: 30000
注意:
SpringBoot版本之间有很大的变化,1.4.x 版本前:
multipart: enabled: true max-file-size: 100MB
1.5.x - 2.x 之间:
spring: http: multipart: enabled: true max-file-size: 100MB
2.x 之后:
spring: servlet: multipart: enabled: true max-file-size: 100MB
2.3、网关工程启动类:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableDiscoveryClient @EnableZuulProxy public class ZuulServerApplication { public static void main(String[] args) { SpringApplication.run(ZuulServerApplication.class, args); } }
2.4、上传代码:
import java.io.File; import java.io.IOException; import org.springframework.stereotype.Controller; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; @Controller public class ZuulUploadController { @PostMapping("/upload") @ResponseBody public String uploadFile(@RequestParam(value = "file", required = true) MultipartFile file) throws IOException { byte[] bytes = file.getBytes(); File fileToSave = new File(file.getOriginalFilename()); FileCopyUtils.copy(bytes, fileToSave); return fileToSave.getAbsolutePath(); } }
3、测试,上传成功返回文件绝对路径:
以上是关于Zuul文件上传的主要内容,如果未能解决你的问题,请参考以下文章
JAVA踩坑记录spring-cloud-zuul文件上传中文名乱码
JAVA踩坑记录spring-cloud-zuul文件上传中文名乱码
springcloud采坑--Zuul上传文件报java.nio.charset.IllegalCharsetNameException: UTF-8;boundary=sqgzzmMxl1UPdIp