摘要:application.yml配置spring:profiles.active:aeolian##MULTIPART(MultipartProperties)#开启multipart上传功能servlet.multipart.enabled:true#文件写入磁盘的阈值servlet.multipart.file-size-threshold:1KB#最大文件大小servlet.multipart
application.yml配置
spring:profiles.active:aeolian
## MULTIPART (MultipartProperties)#开启 multipart 上传功能
servlet.multipart.enabled: true
#文件写入磁盘的阈值
servlet.multipart.file-size-threshold:1KB
#最大文件大小
servlet.multipart.max-file-size:200MB
#最大请求大小
servlet.multipart.max-request-size:215MB
## 文件存储所需参数#所有通过 REST APIs 上传的文件都将存储在此目录下
file.upload-dir: ./uploads
Controller
@RestController
@RequestMapping("/wx/media")
public classMediaController {
@Resource
privateWxCpProperties properties;
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/*** 临时文件上传 - 只有一个文件
* @paramtype
* @paramrequest
* @return* @throwsWxErrorException
* @throwsIOException
*/@RequestMapping(value = "/uploadTemp/{type}", method = {RequestMethod.GET,RequestMethod.POST},produces = "application/json;charset=UTF-8")
public String sendMessage(@PathVariable String type,HttpServletRequest request) throwsWxErrorException, IOException {
List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
MultipartFile multipartFile = null;
if (files.size()>0){
multipartFile = files.get(0);
}else { /*读取文件失败*/logger.error("临时文件上传失败,未读取到文件!");
mediaResult.setErrmsg("未读取到上传的文件!请确保Content-Type为multipart/form-data;并且文件参数的key为file");
returnJsonUtils.toJson(mediaResult);
}
/*验证上传文件大小,防止浪费空间内存*/
long sizeMb = multipartFile.getSize() / (1024 * 1024);
if (sizeMb > 50){
mediaResult.setErrmsg("文件过大,详情查看 https://work.weixin.qq.com/api/doc/90000/90135/90253");
returnJsonUtils.toJson(mediaResult);
}
String result = "";
/*主要业务逻辑*/
returnresult;
}
}