上传文件到远程服务器

 

企业微信接口

素材上传得到media_id,该media_id仅三天内有效
media_id在同一企业内应用之间可以共享

请求方式:POST(HTTPS
请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE

使用multipart/form-data POST上传文件, 文件标识名为”media”
参数说明:

参数必须说明
access_token调用接口凭证
type媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)

POST的请求包中,form-data中媒体文件标识,应包含有 filename、filelength、content-type等信息

filename标识文件展示的名称。比如,使用该media_id发消息时,展示的文件名由该字段控制

请求示例:

 
  1. POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=accesstoken001&type=file HTTP/1.1
  2. Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
  3. Content-Length: 220
  4.  
  5. ---------------------------acebdf13572468
  6. Content-Disposition: form-data; name="media";filename="wework.txt"; filelength=6
  7. Content-Type: application/octet-stream
  8.  
  9. mytext
  10. ---------------------------acebdf13572468--

返回数据:

{
   "errcode": 0,
   "errmsg": "",
   "type": "image",
   "media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
   "created_at": "1380000000"
}

 

 

 @ApiOperation(value = "上传临时素材接口(上传到企业微信)")
  @PostMapping(value = "/ac/admin/wechatmm/media/upload")
  public Result<WechatUploadDto> upload(
      HttpServletRequest request, @RequestParam(value = "mytext") MultipartFile file) {
    PreconditionsUtils.checkNotNull(request.getParameter("resCode"), "资源唯一code不能为空");
    PreconditionsUtils.checkNotNull(request.getParameter("type"), "媒体文件类型不能为空");
    WechatUploadVo uploadVo = new WechatUploadVo();
    uploadVo.setResCode(request.getParameter("resCode"));
    uploadVo.setType(request.getParameter("type"));
    WechatUploadDto wechatUploadDto = null;
    try {
      wechatUploadDto = weChatCommonApi.wechatUpload(uploadVo, file);
    } catch (Exception e) {
      e.printStackTrace();
      PreconditionsUtils.checkArgument(true, "文件上传失败");
    }
    return Result.success(wechatUploadDto);
  }

 

 

关键代码:

// 微信上传临时素材url
    String wechatUploadUrl = weUploadUrl + gettoken + "&type=" + type;
    RestTemplate remplate = new RestTemplate();
    MultiValueMap request = new LinkedMultiValueMap(1);
    ByteArrayResource isResource =
        new ByteArrayResource(file.getBytes()) {
          @Override
          public String getFilename() {
            return file.getOriginalFilename();
          }
        };

    request.add("mytext", isResource);
    WechatUploadDto wechatUploadDto = remplate.postForObject(wechatUploadUrl, request, WechatUploadDto.class);

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值