跳转到主要内容

接口调用说明

调用本接口,上传媒体文件后,可获取媒体资源标识media_id。关于media_id:
  • 使用multipart/form-data POST上传文件, 文件标识名为media。
  • media_id是可复用的,同一个media_id多次使用。
  • media_id对应的资源文件,仅能在钉钉客户端内使用。
  • 媒体文件使用的空间是钉钉提供给组织的特定存储空间,调用本功能接口上传文件,不占用钉钉组织的钉盘空间。

请求

基本信息
HTTP URLhttps://oapi.dingtalk.io/media/upload
HTTP MethodPOST
支持的应用类型appType-企业内部应用appType-第三方企业应用
权限要求permission-qyapi_base-调用企业API时需要具备的基本权限

查询参数

名称类型是否必填示例值描述
access_tokenStringbE74xxxx调用该API的应用凭证。 - 企业内部应用,通过获取企业内部应用的access_token接口获取。 - 第三方企业应用,通过获取第三方企业的access_token接口获取。

请求体

名称类型是否必填示例值描述
typeStringimage媒体文件类型: - image:图片,图片最大20MB。支持上传jpg、gif、png、bmp格式。 - voice:语音,语音文件最大2MB。支持上传amr、mp3、wav格式。 - video:视频,视频最大20MB。支持上传mp4格式。 - file:普通文件,最大20MB。支持上传doc、docx、xls、xlsx、ppt、pptx、zip、pdf、rar格式。 重要 如果使用C#调用该接口出现40004(不合法的媒体文件类型)错误,需将参数type加在请求的URL后面。
mediaFileItemC:/Users/Desktop/222.png要上传的媒体文件。 form-data中媒体文件标识,有filename、filelength、content-type等信息。

请求示例

curl -X POST "https://oapi.dingtalk.io/media/upload" \
-H 'Content-Type:multipart/form-data;charset=utf-8' \
-F 'access_token=4c813ba0-2363-4927-9de0-376b0e6853a2' \
-F 'type=image' \
-F 'media=@"C:/Users/Desktop/222.png"'
Java
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/media/upload");
OapiMediaUploadRequest req = new OapiMediaUploadRequest();
req.setType("image");
// 要上传的媒体文件
FileItem item = new FileItem("C:/Users/Desktop/222.png");
req.setMedia(item);
OapiMediaUploadResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
Python
import dingtalk.api

req=dingtalk.api.OapiMediaUploadRequest("https://oapi.dingtalk.io/media/upload")

req.type="image"
req.media=dingtalk.api.FileItem('abc.jpg',open('abc.jpg','rb'))
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
PHP
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiMediaUploadRequest;
$req->setType("image");

$req->setMedia("C:/Users/Desktop/222.png");
$resp = $c->execute($req, $access_token, "https://oapi.dingtalk.io/media/upload");
C#
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.io/media/upload");
OapiMediaUploadRequest req = new OapiMediaUploadRequest();
req.Type = "image";
req.Media = new FileItem("C:/Users/Desktop/222.png");
OapiMediaUploadResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);

响应

响应体

名称类型示例值描述
errcodeNumber0返回码。
errmsgStringok返回码描述。
typeStringfile媒体文件类型: - image:图片 - voice:语音 - file:普通文件 - video:视频
media_idString@#lAzPDgCwPn1mJiDOQoLpxxxx媒体文件上传后获取的唯一标识。
created_atNumber1599556098964媒体文件上传时间戳。

响应体示例

{
  "errcode": 0,
  "errmsg": "ok",
  "media_id": "$iAEKAqNwbmcDBgTNAk",
  "created_at": 1605863153573,
  "type": "image"
}

错误码

若调用该接口报错,可根据错误信息在全局错误码文档中查找解决方案。