本文建立在spring-cloud-zuul环境搭建的基础上进行扩展介绍。zuul中进行文件上传和Springboot web中文件上传方式一致。
1.配置文件支持文件上传
spring:
application:
name: zuul
servlet:
multipart:
enabled: true #默认支持文件上传
file-size-threshold: 10240 #支持文件写入磁盘 bytes
location: / # 上传文件的临时目录 bytes
max-file-size: 1024 # 最大支持文件大小 bytes
max-request-size: 10240 # 最大支持请求大小 bytes
2.zuul中写文件上传控制层
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* @describe: 文件上传代码和springmvc写法一致
*/
@RestController
public class UploadController {
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@HystrixCommand(fallbackMethod = "uploadFallback")
public String upload(@RequestParam("photo") MultipartFile photo) {
if (photo != null) {
System.out.println("【*** UploadRest ***】文件名称:" + photo.getOriginalFilename() + "、文件大小:" + photo.getSize());
}
return "mldn-file-" + System.currentTimeMillis() + ".jpg";
}
public String uploadFallback(@RequestParam("photo") MultipartFile photo) {
return "nophoto.jpg";
}
}