zoukankan      html  css  js  c++  java
  • SpringBoot后台接收File文件

    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 class MediaController {
    
        @Resource
        private WxCpProperties properties;
    
        private final Logger logger = LoggerFactory.getLogger(this.getClass());
    
        /**
         * 临时文件上传 - 只有一个文件
         * @param type
         * @param request
         * @return
         * @throws WxErrorException
         * @throws IOException
         */
        @RequestMapping(value = "/uploadTemp/{type}", method = {RequestMethod.GET,RequestMethod.POST},produces = "application/json;charset=UTF-8")
        public String sendMessage(@PathVariable String type,HttpServletRequest request) throws WxErrorException, 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");
                return JsonUtils.toJson(mediaResult);
            }
            /*验证上传文件大小,防止浪费空间内存*/
            long sizeMb = multipartFile.getSize() / (1024 * 1024);
            if (sizeMb > 50){
                mediaResult.setErrmsg("文件过大,详情查看 https://work.weixin.qq.com/api/doc/90000/90135/90253");
                return JsonUtils.toJson(mediaResult);
            }
            String result = "";
            /*主要业务逻辑*/
            return result;
        }
    }
  • 相关阅读:
    HOJ 2930 Perfect Fill IIl 线性递推
    BZOJ 1269: [AHOI2006]文本编辑器editor Splay
    linux shell常用快捷键(转)
    【引用】Linux date命令
    linux shell if 参数(转)
    vsftpd 530 Permission denied(转)
    捕获非广播包和非发给自己主机的数据包的原理是什么 混杂模式(转)
    代理ARP(转)
    Linux和Unix系统 关系和区别详细介绍(转)
    路由表(转)
  • 原文地址:https://www.cnblogs.com/aeolian/p/12436965.html
Copyright © 2011-2022 走看看