對於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:
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();
}
}