抖音开放平台Logo
开发者文档
控制台
  • API 概览
  • 开放能力
  • 基础
  • 渲染
  • 设备
  • 文件
  • 位置
  • 媒体
  • 网络
  • 发起请求
  • 下载
  • 上传
  • tt.uploadFile
  • UploadTask
  • Websocket
  • 游戏转发分享
  • 实时语音
  • 数据缓存
  • 系统
  • 广告
  • 界面
  • 支付
  • Worker
  • tt.uploadFile
    收藏
    我的收藏

    基础库 1.0.0 开始支持本方法,这是一个异步方法。

    将本地文件上传到网络。客户端将发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。

    前提条件

    网络相关的 API 在使用前需要配置域名白名单,请前往开发者平台「开发 - 开发设置」,添加 uploadFile 合法域名

    业务背景
    使用限制
    • header 不支持设置 refereruser-agentcontent-type 字段字段。
    • 目前 tt.uploadFile 上传文件大小限制为 10M。
    • 目前 tt.uploadFile 暂不支持多文件上传,一次只能上传一个文件。
    注意事项
    相关教程

    语法

    tt.uploadFile(options)

    参数说明

    options 为 object 类型,属性如下:

    属性名类型默认值必填说明最低支持版本
    urlstring
    目标地址
    1.0.0
    filePathstring
    本地文件路径
    1.0.0
    namestring
    HTTP 请求的文件名
    1.0.0
    headerobject{"content-type": "multipart/form-data"}
    请求 Header ,不能设置 referer 和 user-agent
    1.0.0
    formDataobject
    请求额外参数
    1.0.0
    successfunction
    接口调用成功的回调函数
    1.0.0
    failfunction
    接口调用失败的回调函数
    1.0.0
    completefunction
    接口调用结束的回调函数(调用成功、失败都会执行)
    1.0.0

    header 参数说明

    referer 说明

    网络请求 header 中的 referer 不可设置。 其固定格式为:https://tmaservice.developer.toutiao.com?appid={appid}&version={appVersion},其中 appid 为小游戏的 APPID,appVersion 为小游戏的版本号。

    user-agent 说明

    网络请求 header 中的 user-agent 不可设置。 其固定格式分为:

    • IOS 系统:[系统user-agent] [宿主标识]/[宿主app版本] ToutiaoMicroApp/[基础库版本] webview/[插件版本]
    • Android 系统:[系统user-agent] [宿主标识]/[宿主app版本] ToutiaoMicroApp/[基础库版本] PluginVersion/[插件版本]

    回调成功

    object 类型,属性如下:

    属性名类型说明最低支持版本
    statusCodenumber
    返回 HTTP 状态码
    1.0.0
    datastring
    返回数据
    1.0.0
    errMsgstring
    "uploadFile:ok"
    1.0.0

    回调失败

    object 类型,属性如下:

    属性名类型说明最低支持版本
    errMsgstring
    "uploadFile:fail" + 详细错误信息
    1.0.0

    返回值

    类型说明最低支持版本
    object

    UploadTask 实例(上传任务对象)

    1.0.0

    错误码

    errorCodeerrMsgerrorType说明最低支持版本
    121301url is not valid domain, url == %sD
    1.0.0
    999999url is invalid, url == %sD
    1.0.0
    999999url use invalid protocol, url == %s, url support protocol is %sD
    1.0.0
    121306no file exist, filePath == %sD
    1.0.0
    121305permission denied, openD
    1.0.0
    121303abortI
    1.0.0
    121302no uploadTaskIdF
    小游戏框架内部错误,有需要请创建工单咨询
    1.0.0
    999993internal errorF
    小游戏框架内部错误,有需要请创建工单咨询
    1.0.0
    999999params $paramName is requiredD
    1.0.0
    999999params $paramName type is not $paramType typeD
    1.0.0
    999999$paramName is invalidD
    1.0.0
    999999method is invalidD
    1.0.0
    999994app in backgroundU
    1.0.0
    121306filePath is illegalD
    1.0.0
    121309file is emptyD
    1.0.0
    999999url is not valid domain, url == $urlD
    1.0.0
    121308url is not valid domain, url == $urlF
    小游戏框架内部错误,有需要请创建工单咨询
    1.0.0
    121301url is not valid domain, url == $urlD
    1.0.0
    121307url is not valid domain, url == $urlD
    1.0.0

    代码示例

    let task = tt.uploadFile({ url: "someuploadurl", filePath: tempFilePath, name: "file", success(res) { if (res.statusCode === 200) { console.log(`uploadFile调用成功 ${res.data}`); } }, fail(res) { console.log(`uploadFile调用失败`); }, }); task.onProgressUpdate((res) => { this.setData({ progress: res.progress, }); }); if (someReason) { task.abort(); }