您的位置:首页 > 游戏 > 游戏 > 在线培训app_软件定制开发哪家好_想做百度推广找谁_百度推广网址是多少

在线培训app_软件定制开发哪家好_想做百度推广找谁_百度推广网址是多少

2025/1/4 14:08:14 来源:https://blog.csdn.net/Smile_ping/article/details/144851382  浏览:    关键词:在线培训app_软件定制开发哪家好_想做百度推广找谁_百度推广网址是多少
在线培训app_软件定制开发哪家好_想做百度推广找谁_百度推广网址是多少

uniapp如何下载文件、保存、打开文件

时光荏苒,2024即将过去!
迈向2025,祝大家新的一年工作顺利、万事如意,少一点BUG,涨一点工资…↖(ω)↗

文章目录

    • uniapp如何下载文件、保存、打开文件
      • 下载文件
      • 保存并打开文件
      • 处理` iOS` 打开文件可能失败问题
      • 相关API返回数据格式
        • 下载成功
        • 保存文件成功
        • 拷贝目录成功

相关Api:

  • uni.downloadFile
  • uni.saveFile
  • 5+ API

下载文件

  • 通过 uni.downloadFile 结合 uni.saveFile 及 5+ Api 实现
  • 例:导出 Excel文件
downloadFile() {// 下载文件资源到本地let header = {Authorization: getToken()}uni.downloadFile({url: 'xxx/export',header,success: (res) => {console.log('下载成功:', res);if (res.statusCode === 200) {this.saveFile(res.tempFilePath);}},fail: (err) => {uni.showToast({title: '下载失败',icon: 'error'})}});
}

保存并打开文件

  • 保存文件到本地
saveFile(tempFilePath) {uni.saveFile({tempFilePath: this.fileNameEscape(tempFilePath),success: (res) => {console.log('保存文件成功:', res);// 需要保存的文件的临时路径let tempFilePath = res.savedFilePath;let fileName = `Smile_${new Date().getTime()}.xlsx`; // 目标文件名// 通过URL参数获取目录对象或文件对象plus.io.resolveLocalFileSystemURL(tempFilePath, (entry) => {plus.io.resolveLocalFileSystemURL('_doc/', (root) => {// 创建或打开当前目录下指定的文件root.getFile(fileName, {create: true}, (file) => {// 删除、拷贝目录file.remove(() => {entry.copyTo(root, fileName, (entry) => {console.log('拷贝目录成功:', entry.fullPath);// 调用第三方程序打开指定的文件plus.runtime.openFile(entry.fullPath);}, (err) => {console.log('拷贝目录失败:', err);});});}, (err) => {console.log('获取文件失败', err);});});});},fail: (err) => {console.log('保存文件失败', err);}});
}

处理 iOS 打开文件可能失败问题

  • 下载文件名中包含中文字符时会失败情况
fileNameEscape(filename) {if (uni.getSystemInfoSync().platform == "ios") {filename = escape(filename);}return filename;
},

相关API返回数据格式

下载成功
{"tempFilePath": "_doc/uniapp_temp_1735639708906/download/export.json","statusCode": 200,"errMsg": "downloadFile:ok"
}

保存文件成功
{"errMsg": "saveFile:ok","savedFilePath": "_doc/uniapp_save/17356398268860.json"
}

拷贝目录成功
/storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/doc/Smile_1735639826926.xlsx

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com