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;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM