uni.uploadFile(OBJECT)

POST 请求,其中 content-typemultipart/form-data。如页面通过 uni.chooseImage 等接口获取到一个本地资源的临时文件路径后,可通过此接口将本地资源上传到指定服务器。另外选择和上传非图像、视频文件参考:https://ask.dcloud.net.cn/article/35547。

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

  • uni-app插件市场中也有多个封装的组件。
  • https://ask.dcloud.net.cn/article/35547
  • 超时时间 可以统一在 manifest.json 中配置 networkTimeout。files参数说明 files 参数是一个 file 对象的数组,file 对象的结构如下: Tip:
  • name 不填或填的值相同,可能导致服务端读取文件时只能读取到一个文件。success 返回参数说明 示例
    1. uni.chooseImage({ success: (chooseImageRes) => { const tempFilePaths = chooseImageRes.tempFilePaths; uni.uploadFile({ url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址 filePath: tempFilePaths[0], name: 'file', formData: { 'user': 'test' }, success: (uploadFileRes) => { console.log(uploadFileRes.data); } }); }});
    返回值 uploadTask 对象,需要至少传入 success / fail / complete 参数中的一个。例如:
    1. var uploadTask = uni.uploadFile({ url: 'https://www.example.com/upload', //仅为示例,并非真实接口地址。 complete: ()=> {}});uploadTask.abort();
    Promise 封装 uploadTask,可监听上传进度变化事件,以及取消上传任务。 uploadTask 对象的方法列表 onProgressUpdate 返回参数说明 示例
    1. uni.chooseImage({ success: (chooseImageRes) => { const tempFilePaths = chooseImageRes.tempFilePaths; const uploadTask = uni.uploadFile({ url: 'https://www.example.com/upload', //仅为示例,非真实的接口地址 filePath: tempFilePaths[0], name: 'file', formData: { 'user': 'test' }, success: (uploadFileRes) => { console.log(uploadFileRes.data); } }); uploadTask.onProgressUpdate((res) => { console.log('上传进度' + res.progress); console.log('已经上传的数据长度' + res.totalBytesSent); console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend); // 测试条件,取消上传任务。 if (res.progress > 50) { uploadTask.abort(); } }); }});

    uni.downloadFile(OBJECT)

    下载文件资源到本地,客户端直接发起一个 HTTP GET 请求,返回文件的本地临时路径。 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。 OBJECT 参数说明 注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 success 返回参数说明 注意
  • 超时时间 可以统一在 manifest.json 中配置 networkTimeout。示例
    1. uni.downloadFile({ url: 'https://www.example.com/file/test', //仅为示例,并非真实的资源 success: (res) => { if (res.statusCode === 200) { console.log('下载成功'); } }});
    返回值 downloadTask 对象,需要至少传入 success / fail / complete 参数中的一个。例如:
    1. var downloadTask = uni.downloadFile({ url: 'https://www.example.com/file/test', //仅为示例,并非真实接口地址。 complete: ()=> {}});downloadTask.abort();
    Promise 封装 downloadTask,可监听下载进度变化事件,以及取消下载任务。 downloadTask 对象的方法列表 onProgressUpdate 返回参数说明 示例
    1. const downloadTask = uni.downloadFile({ url: 'http://www.example.com/file/test', //仅为示例,并非真实的资源 success: (res) => { if (res.statusCode === 200) { console.log('下载成功'); } }});downloadTask.onProgressUpdate((res) => { console.log('下载进度' + res.progress); console.log('已经下载的数据长度' + res.totalBytesWritten); console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite); // 测试条件,取消下载任务。 if (res.progress > 50) { downloadTask.abort(); }});

在 GitHub 上编辑此页面!