uniapp下载文件到本地
时间: 2023-09-08 20:11:51 浏览: 369
要在uniapp中下载文件并保存到本地,你可以使用两种方法。
方法一:使用uni.downloadFile和uni.saveFile函数。
首先,使用uni.downloadFile函数下载文件,该函数接受一个对象参数,包含文件的下载URL。下载成功后,使用uni.saveFile函数将文件保存到本地,该函数也接受一个对象参数,其中的tempFilePath属性指定要保存的文件的临时路径。保存成功后,可以使用uni.openDocument函数打开文件。请注意,保存的文件位置可能比较奇怪,比如在安卓端可能是"内部存储\Android\data\io.dcloud.HBuilder\apps\HBuilder\doc\uniapp_save"。此外,还要注意保存过程中文件名可能会被篡改。因此,建议使用方法二。
方法二:使用plus.downloader.createDownload和plus.io.convertLocalFileSystemURL函数。
首先,使用plus.downloader.createDownload函数创建一个下载任务,该函数接受两个参数,文件的下载地址和文件保存的路径。下载成功后,使用plus.io.convertLocalFileSystemURL函数将保存在本地的相对路径转换为平台绝对路径。然后,使用plus.runtime.openFile函数选择一个软件打开文件。最后,显示一个toast提示文件已保存。如果下载失败,可以使用plus.downloader.clear函数清除下载任务。请注意,安卓端文件管理内的路径是file://storage/emulated/0/xx。
下面是一个例子用来下载文件并保存到本地:
uni.downloadFile({
url: 文件的下载路径,
success(res) {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: function(res) {
const savedFilePath = res.savedFilePath;
uni.openDocument({
filePath: savedFilePath,
success: function(res) {
uni.hideLoading()
},
fail: function(res) {},
complete: function(res) {
setTimeout(uni.hideLoading(), 4000)
},
});
},
fail: function(err) {}
});
},
fail(res) {}
})
请注意替换代码中的"文件的下载路径"为实际文件的下载URL。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [uniapp 下载文件和保存到本地](https://blog.csdn.net/shelter123456/article/details/126038481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [【下载文件】uniapp开发小程序,下载文件并保存到本地](https://blog.csdn.net/weixin_48596030/article/details/126015687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文