OBJECT 参数说明

    注意

    • 5+App支持多文件上传,微信小程序只支持单文件上传,传多个文件需要反复调用本API。所以跨端的写法就是循环调用本API。
    • hello uni-app中的客服反馈,支持多图上传。uni-app插件市场中也有多个封装的组件。
    • App平台选择和上传非图像、视频文件,参考
    • 网络请求的 超时时间 可以统一在 manifest.json 中配置 networkTimeoutfiles参数说明

    files 参数是一个 file 对象的数组,file 对象的结构如下:

    参数名类型必填说明
    nameStringmultipart 提交时,表单的项目名,默认为 file
    uriString文件的本地地址

    Tip:

    • 如果 name 不填或填的值相同,可能导致服务端读取文件时只能读取到一个文件。success 返回参数说明
    参数类型说明
    dataString开发者服务器返回的数据
    statusCodeNumber开发者服务器返回的 HTTP 状态码

    示例

    返回值

    如果希望返回一个 uploadTask 对象,需要至少传入 success / fail / complete 参数中的一个。例如:

    1. var uploadTask = uni.uploadFile({
    2. url: 'https://www.example.com/upload', //仅为示例,并非真实接口地址。
    3. complete: ()=> {}
    4. });
    5. uploadTask.abort();

    通过 uploadTask,可监听上传进度变化事件,以及取消上传任务。

    uploadTask 对象的方法列表

    onProgressUpdate 返回参数说明

    参数类型说明
    progressNumber上传进度百分比
    totalBytesSentNumber已经上传的数据长度,单位 Bytes
    totalBytesExpectedToSendNumber预期需要上传的数据总长度,单位 Bytes

    示例

    uni.downloadFile(OBJECT)

    下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。

    在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。

    OBJECT 参数说明

    参数名类型必填说明
    urlString下载资源的 url
    headerObjectHTTP 请求 Header, header 中不能设置 Referer。
    successFunction下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'}
    failFunction接口调用失败的回调函数
    completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

    注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 ,才能在应用下次启动时访问得到。

    注意

    • 网络请求的 可以统一在 manifest.json 中配置 networkTimeout示例
    1. url: 'https://www.example.com/file/test', //仅为示例,并非真实的资源
    2. success: (res) => {
    3. if (res.statusCode === 200) {
    4. console.log('下载成功');
    5. }
    6. }
    7. });

    返回值

    如果希望返回一个 downloadTask 对象,需要至少传入 success / fail / complete 参数中的一个。例如:

    如果没有传入 success / fail / complete 参数,则会返回封装后的 Promise 对象:

    通过 downloadTask,可监听下载进度变化事件,以及取消下载任务。

    downloadTask 对象的方法列表

    方法参数说明最低版本
    abort中断下载任务
    onProgressUpdatecallback监听下载进度变化
    onHeadersReceivedcallback监听 HTTP Response Header 事件,会比请求完成事件更早,仅微信小程序平台支持,规范详情
    offProgressUpdatecallback取消监听下载进度变化事件,仅微信小程序平台支持,
    offHeadersReceivedcallback取消监听 HTTP Response Header 事件,仅微信小程序平台支持,规范详情

    onProgressUpdate 返回参数说明

    参数类型说明
    progressNumber下载进度百分比
    totalBytesWrittenNumber已经下载的数据长度,单位 Bytes
    totalBytesExpectedToWriteNumber预期需要下载的数据总长度,单位 Bytes

    示例

    1. const downloadTask = uni.downloadFile({
    2. success: (res) => {
    3. if (res.statusCode === 200) {
    4. console.log('下载成功');
    5. }
    6. });
    7. downloadTask.onProgressUpdate((res) => {
    8. console.log('下载进度' + res.progress);
    9. console.log('已经下载的数据长度' + res.totalBytesWritten);
    10. console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
    11. // 测试条件,取消下载任务。
    12. if (res.progress > 50) {
    13. downloadTask.abort();