对于1M以内的文件上传,无需任何处理,大文件10M以上需要为上传路径添加/zuul前缀,也可使用zuul.servlet-path自定义前缀
如果Zuul使用了Ribbon做负载均衡,那么对于超大的文件,需要提升超时设置:hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:60000
ribbon:
ConnectTimeout: 3000
ReadTimeout: 60000
将服务注册到Eureka Server上,并配置文件上传大小的限制,配置文件添加以下内容:
server:
port: 8050
eureka:
client:
serviceUrl:
defaultZone:
http://localhost:8761/erueka/
instance:
prefer-ip-address: true
spring:
application:
name: microservice-file-upload
http:
multipart:
max-file-size: 2000Mb (默认1M)
max-request-size: 2500Mb (默认10M)
@ReponseBody
@Controller
public class FileUploadController{
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@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();
}
}