swan.downloadFile

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

方法参数

Object object

object参数说明 :

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

success 返回参数说明 :

参数类型说明
tempFilePathString临时文件路径,下载后的文件会存储到一个临时文件
statusCodeNumber开发者服务器返回的 HTTP 状态码

fail 返回参数说明 :

  • Android
错误码说明
202解析失败,请检查参数是否正确
1001执行错误
  • iOS
错误码说明
202解析失败,请检查参数是否正确
1001请求文件超过10M
1002无法确定下载文件大小

示例

扫码体验

swan.downloadFile - 图1请使用百度APP扫码

图片示例

swan.downloadFile - 图2

swan.downloadFile - 图3

swan.downloadFile - 图4

代码示例1 :

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. data: { },
  3. downloadFile() {
  4. swan.downloadFile({
  5. url: 'https://smartprogram.baidu.com/docs/img/file-simple.pdf',
  6. header: {
  7. 'content-type': 'application/json'
  8. },
  9. success: res => {
  10. //下载成功
  11. if (res.statusCode === 200) {
  12. console.log("临时文件路径" + res.tempFilePath);
  13. }
  14. },
  15. fail: err => {
  16. console.log('错误码:' + err.errCode);
  17. console.log('错误信息:' + err.errMsg);
  18. }
  19. });
  20. }
  21. })

代码示例2 - 指定下载路径 :

在开发者工具中预览效果

  • 在 js 文件中
  1. Page({
  2. data: { },
  3. downloadFile() {
  4. swan.downloadFile({
  5. url: 'https://smartprogram.baidu.com/docs/img/file-simple.pdf',
  6. header: {
  7. 'content-type': 'application/json'
  8. },
  9. filePath: 'bdfile://usr/办理指南文档.pdf',
  10. success: res => {
  11. console.log(res);
  12. let filePath = res.filePath;
  13. swan.showModal({
  14. title: '文件下载完成',
  15. content: '是否需要打开?',
  16. confirmText: '打开',
  17. success: res => {
  18. if (res.confirm) {
  19. swan.openDocument({
  20. filePath: filePath,
  21. fileType: 'pdf',
  22. fail: err => {
  23. this.toast('打开失败');
  24. }
  25. });
  26. }
  27. }
  28. });
  29. },
  30. fail: err => {
  31. this.toast('下载文件失败');
  32. },
  33. complete: () => {
  34. swan.hideToast();
  35. }
  36. });
  37. }
  38. });

返回值:

返回一个 downloadTask 对象,通过 downloadTask,可监听下载进度变化事件,以及取消下载任务。

Bug & Tip

  • 文件的临时路径,在智能小程序本次启动期间可以正常使用,如需持久保存,需再主动调用 swan.saveFile,才能在智能小程序下次启动时访问得到;
  • 请在 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型。
  • 下载最大限制10MB。