目录

  • 1 上传临时素材API
  • 2 测试代码
  • 3 测试完成
  • 4 遇到的问题
    • 4.1 文件类型无法解析

1 上传临时素材API

调试工具

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

请求方式:POST(HTTPS
请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/uploadaccess_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发消息时,展示的文件名由该字段控制

请求示例:

POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=accesstoken001&type=file
HTTP/1.1Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
Content-Length: 220---------------------------acebdf13572468
Content-Disposition: form-data; name="media";filename="wework.txt"; filelength=6
Content-Type: application/octet-streammytext---------------------------acebdf13572468--

2 测试代码

    @ApiOperation(value = "企业微信上传临时文件", notes = "企业微信上传临时文件")@PostMapping("/uploadimg")public String uploadimg(MultipartFile files) throws IOException {RestTemplate restTemplate = new RestTemplate();URI uri = UriComponentsBuilder.fromHttpUrl("https://qyapi.weixin.qq.com/cgi-bin/media/upload").queryParam("access_token", "oWtvz7v8bG8_y3a-OducvPyR4312eAmkPLZyLMnP_tKcoQ0c1ZIgWzaXHnp6rZxCgtFHCMXTi6MgOh0jEwwaSglz8TnFdSdPRK2IF1yKA_u5CGwVSgBrkyw2Gx5PgMKlWr8xmikRvMZXVahDS1CIiJZN9D97ZfScozLIFF-25xPDES2n9_8ZKruTj3olO8E5bGXnYsmgwAyU2jxx3CcoNQ").queryParam("type", "file").build().toUri();InputStream inputStream = files.getInputStream();String s = restTemplate.postForObject(uri, new InputStreamResource(inputStream), String.class);return s;}

3 测试完成

4 遇到的问题

4.1 文件类型无法解析

说明传递的文件没有文件名

个人代码:

    @ApiOperation(value = "企业微信上传临时文件", notes = "企业微信上传临时文件")@PostMapping("/uploadimg")public String uploadimg() throws IOException {RestTemplate restTemplate = new RestTemplate();URI uri = UriComponentsBuilder.fromHttpUrl("https://qyapi.weixin.qq.com/cgi-bin/media/upload").queryParam("access_token", "oWtvz7v8bG8_y3a-OducvPyR4312eAmkPLZyLMnP_tKcoQ0c1ZIgWzaXHnp6rZxCgtFHCMXTi6MgOh0jEwwaSglz8TnFdSdPRK2IF1yKA_u5CGwVSgBrkyw2Gx5PgMKlWr8xmikRvMZXVahDS1CIiJZN9D97ZfScozLIFF-25xPDES2n9_8ZKruTj3olO8E5bGXnYsmgwAyU2jxx3CcoNQ").queryParam("type", "image").build().toUri();FileSystemResource fileSystemResource = new FileSystemResource("C:\\Users\\Administrator\\Desktop\\3d3c789387ffd4e12006f16f7c78b187.jpg");HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);/*Content-Disposition: form-data; name="media";filename="wework.txt"; filelength=6*/ContentDisposition build = ContentDisposition.builder("form-data").filename(fileSystemResource.getFilename()).build();headers.setContentDisposition(build);MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();params.add("media", fileSystemResource);HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);String s = restTemplate.postForObject(uri,requestEntity , String.class);return s;}

Java实现企业微信上传临时文件获取media_id相关推荐

  1. 企业微信上传素材,java httpPost Multipart FormData

    上传调用 String uploadUrl = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={token}& ...

  2. 企业微信 上传临时素材 JAVA

    上传临时素材 Controller @ResponseBody@RequestMapping(value = "/uploadFile", method = RequestMeth ...

  3. 企业微信上传文件到服务器,上传素材到腾讯企业微信服务器

    //filetype:文件类型:filePath:文件所在路径 @Override public JSONObject uploadMedia(String fileType, String file ...

  4. 企业微信上传临时素材文件

    1.控制层 /*** 上传临时素材*/@ResponseBody@PostMapping("/uploadResource")public BaseResponse uploadR ...

  5. .net core 使用HttpClient为企业微信上传临时素材

    背景: 企微的图片三天有效,所以需要一个定时程序把快到期的图片又传一次到企微上面去 /// <summary>/// 向企业微信临时素材提交数据/// </summary>// ...

  6. 阿里云 对象存储java实现OSS文件上传及获取URL

    本人已尝试上传成功 maven加载的jar包 pom配置 <dependency><groupId>com.aliyun.oss</groupId><arti ...

  7. java调用企业微信接口发送文件功能

    java调用企业微信接口发送文件功能 代码 结合几位大佬的代码后实现此功能:感谢大佬让我完成此功能的实现,如有侵权,立刻删除. 借鉴文章地址: java调用企业微信接口发送消息https://blog ...

  8. 微信公众平台对接C#-上传临时文件

    #region 上传临时文件/// <summary>///上传临时文件/// </summary>public class Medial{public string type ...

  9. 基于Java实现企业微信群聊机器人-文件上传+消息推送(保证可用)

    基于Java实现企业微信群聊机器人-文件上传+消息推送 1.pom.xml(注意版本尽量保持一致) 2.文件工具类 3.企业微信请求类 4.企业微信响应类 5.发送方法 6.企业微信机器人创建和配置 ...

最新文章

  1. CUPS Share Printer
  2. Ext JS 4预览:重构和规范渲染过程()
  3. lsit集合去重复 顶级表达式
  4. 桌面虚拟化“寻人行动”-转裁
  5. 【正一专栏】故意豪宅纵火的保姆会判死刑吗?
  6. Macosx Setdns
  7. 爱玛士关于爬虫的scrapy框架的心得
  8. IOCP 浅析与实例
  9. linux db2创建存储过程语法,EF基础一-db2存储过程中循环语句while do...-oracle 创建DBLINK_169IT.COM...
  10. 简明Vim练级攻略(初学者)
  11. .NET6之MiniAPI(五):选项
  12. Spring:@Transactional 注解使用讲解
  13. python语言翻译成汇编语言_计原 || 1计算机语言发展与计算机层次结构
  14. xshell 4 中文乱码问题解决
  15. MindManager 2021授权许可密钥思维导图软件
  16. 中国人保为闲人谷中药科技承保产品责任险,为消费者保驾护航!
  17. android 朋友圈图文,Android 微信分享图片(好友和朋友圈)
  18. 查看思科交换机出厂时间
  19. python爬淘宝商品销量信息_python爬取淘宝商品销量信息
  20. 为什么模电这么难学?

热门文章

  1. 2019CSP模拟赛题解Adore Confess Repulsed
  2. 基于OpenCV的车牌识别(Sobel、颜色定位)
  3. 汽车行业积分商城系统框架如何搭建
  4. 区块链健康促进攻克重大疾病
  5. 百度地图SDK导航功能初始化错误
  6. 电影院移动端让观影更自由
  7. Matlab/Admas联合仿真提示 输入位移曲线 输出速度曲线为0的解决方法
  8. R语言中读取excel数据的常用方式有哪些?
  9. Java 计算矩形周长和面积
  10. 谈谈国产气相色谱仪中的色谱柱和恒温器