• 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;
        }
    }
  • 相关阅读:
    Windows10 Docker 安装 dotnet core sdk 超时
    解决 jQuery-datepicker无法弹出日期的问题
    SQL2008 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    “entities.LastOrDefault()”引发了类型“System.NotSupportedException”的异常
    快速开发平台
    快速设计ComboBox下拉框
    流程设计-流程模式
    流程设计-流程工具
    快速开发一款APP
    SDP开发
  • 原文地址:https://www.cnblogs.com/aeolian/p/12436965.html
Copyright © 2020-2023  润新知