参数说明
1. 文件发送接口参数
参数  | 是否必填  | 说明  | 
msgtype  | 是  | 消息类型,此时固定为file  | 
content  | 是  | 文件id,通过下文的文件上传接口获取  | 
2. 文件上传接口参数
素材上传得到media_id,该media_id仅三天内有效
media_id只能是对应上传文件的机器人可以使用
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE
上传的文件限制:要求文件大小在5B~20M之间
使用multipart/form-data POST上传文件, 文件标识名为”media”
参数  | 是否必填  | 说明  | 
key  | 是  | 调用接口凭证, 机器人webhookurl中的key参数  | 
type  | 是  | 固定传file  | 
3. 返回参数
{
   "errcode": 0,
   "errmsg": "ok",
   "type": "file",
   "media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
   "created_at": "1380000000"
}参数  | 是否必填  | 说明  | 
key  | 是  | 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)  | 
media_id  | 是  | 媒体文件上传后获取的唯一标识,3天内有效  | 
created_at  | 是  | 媒体文件上传时间戳  | 
效果展示

Demo Code
# -*- coding: utf-8 -*-
# coding:unicode_escape
# Created on 2021年12月31日
# @author: LinHuang(Joker)
import requests
import json
# mian function
def main():
    oFileUploadUrl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=50d640d9-9ad6-4d39-98aa-c94c2002e6d4&type=file'
    oWX_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=50d640d9-9ad6-4d39-98aa-c94c2002e6d4'
    filePath='C:\\Users\\QDM\Desktop\\722513_E_20211211.pdf'
    filename="722513_E_20211211.pdf"
    payload={'Content-Disposition': 'form-data','name': 'media','filename': filename}
    files=[('boundary', ('%s' % filename, open('%s' % filePath, 'rb'), 'application/pdf'))]
    headers = {}
    try:
        response = requests.request("POST", oFileUploadUrl, headers=headers, data=payload, files=files,timeout=5)
    except Exception as e:
        print(e.args[0])
    json_res = response.json()
    media_id = json_res['media_id']
    if media_id != "":
        data = {"msgtype": "file",
                "file": {
                    "media_id": media_id
                }
                }
        headers = {'Content-Type': 'application/json'}  # 指定提交的是json
        try:
            response = requests.post(
                url=oWX_URL, json=data, headers=headers, timeout=5)
        except Exception as e:
            print(e.args[0])
if __name__ == '__main__':
    main()









