uni-app下载文件永久保存uni.downloadFile和uni.saveFile

uni-app下载文件永久保存uni.downloadFile和uni.saveFile

在关注uni-app后一段时间,想借助一些API接口去开发一些小小的软件,做为一个练习。看到了抖音水印解析的接口后,就像去试试,做app的话就一个功能,而且UI界面好画。

uni-app下载文件永久保存uni.downloadFile和uni.saveFile,也有些不好的地方吧,比如文件存放的位置开始时临时的,转成永久的后 == 文件所谓在位置复杂

uni-app下载文件永久保存uni.downloadFile和uni.saveFile

 

1.建立项目

新建项目-选择uni-app (老图哈哈)

uni-app下载文件永久保存uni.downloadFile和uni.saveFile

2.添加下载事件

写一个按钮,点击按钮的时候在处发下载

<button type="primary" @tap="xiazai">确定下载</button>

3.uni.downloadFile下载

点击下载按钮后处发methods里面的函数(官方文档说明请点击我)下载后通过 downloadTask,可监听下载进度变化事件

methods: {
	xiazai() {
		const downloadTask = uni.downloadFile({
			url: 'http://img.netbian.com/file/2019/0414/7bee7eef5fc44417a0b02a46576e7e16.jpg', //仅为示例,并非真实的资源
				success: (res) => {
					if (res.statusCode === 200) {
						console.log('下载成功');
					}
					this.dd = res.tempFilePath;
					console.log(this.dd);
			}
		});

		downloadTask.onProgressUpdate((res) => {
			console.log('下载进度' + res.progress);
			console.log('已经下载的数据长度' + res.totalBytesWritten);
			console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
		});
	}
}

控制台中可以看到文件的下载位置(447行)和下载的大小等,但这个是临时文位置

uni-app下载文件永久保存uni.downloadFile和uni.saveFile

 

4.uni.saveFile永久保存

当uni.downloadFile 回调成功后tempFilePath参数临时保存文件的路径,在使用uni.saveFile存到本地即可,整体代码如下

methods: {
	xiazai() {
		const downloadTask = uni.downloadFile({
			url: 'http://img.netbian.com/file/2019/0414/7bee7eef5fc44417a0b02a46576e7e16.jpg', //仅为示例,并非真实的资源
			success: (res) => {
				if (res.statusCode === 200) {
					console.log('下载成功');
				}
				let that = this;
				uni.saveFile({
					tempFilePath: res.tempFilePath,
						success: function(red) {
							that.luj = red.savedFilePath
							console.log(red)
						}
					});
				}
			});

			downloadTask.onProgressUpdate((res) => {
				console.log('下载进度' + res.progress);
				console.log('已经下载的数据长度' + res.totalBytesWritten);
				console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
		});
	}
}

5.保存所谓位置

它保存的位置比奇葩在

“内部存储\Android\data\io.dcloud.HBuilder\apps\HBuilder\doc\uniapp_save”

 

如果是图片之类的可以直接保存在相册,或者5+plus自定义一个保存目录

 

 

相关推荐

星宿UI V0.8 新增激励视频资源下载 wordpress微信小程序

“我用执着烧死了所有的幼稚和任性,那片荒野慢慢长出了理智冷漠和清醒”前言感谢“韩枫爱...

uni-app星茫多端小程序开源丸子插件wordpress后台

uni-app星茫多端小程序开源丸子插件wordpress后台,时光不散,原先看到w...

uni星茫V3.0更新uni-app多端小程序源码丸子插件wordpress后台

晚风踩着云朵,月亮贩卖寂寞,而你来自万顷银河,是我翘首以盼的快乐————uni星茫V...

uni-app 微信小程序跳转tabar导航界面无效处理方式

心这个东西很贵,给对了人,就是无价,给错了人,就是一文不值,喜欢和善良可以免费,但绝...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论(16)

  • pcsigjlxfz 游客 04/23/2021

    uni-app下载文件永久保存uni.downloadFile和uni.saveFile - 枫瑞博客网
    [url=http://www.gh3reb32o1317bmq6ho09h41v418n1ris.org/]upcsigjlxfz[/url]
    apcsigjlxfz
    pcsigjlxfz http://www.gh3reb32o1317bmq6ho09h41v418n1ris.org/

  • 枫瑞博客 普通用户 回复 Jacob 08/21/2020

    H5 我没有测试呢 !!看看官方插件市场有没有插件

  • Jacob 游客 08/21/2020

    请问h5怎么弄呢,调用saveFIle失败

  • gary 游客 08/06/2020

    不错的分享,谢谢

  • 枫瑞博客 普通用户 回复 lll 06/01/2020

    返回的好像是临时的,我在测试时候 疯狂踩坑,我已经快自闭了

  • lll 游客 06/01/2020

    这样返回的路径是不对的吧 虽然说您上面写的路径是这样,返回的路径不是这个路径吧

  • 枫瑞博客 普通用户 回复 Leob 05/21/2020

    我测试下

  • Leob 游客 05/20/2020

    第二次下载怎么就无法进行了呢?

  • 枫瑞博客 普通用户 回复 zy 04/22/2020

    h5+我也不会

  • zy 游客 04/22/2020

    请问5+plus定义保存路径如何实现

  • 枫瑞博客 普通用户 回复 北辰 02/19/2020

    下载文件执行xiazai函数其中
    that.luj = red.savedFilePath

    是吧返回的数据给luj,因为没有使用箭头函数没法用this,所以先把let that = this;,
    就有了that.luj = red.savedFilePath

    说白了luj就是存放了一个返回的数据

  • 北辰 游客 02/19/2020

    that.luj是个啥?

  • 齊昦 游客 01/19/2020

    请问,我用uni.downloadFile能够下载文件,但是调uni.saveFile的时候报错,保存不起,请问这个怎么解决呢

  • 枫瑞博客 普通用户 回复 nini 01/10/2020

    你是保存什么文件

  • nini 游客 01/09/2020

    为什么我这边保存文件报 saveFile:fail permission denied这个呢?

  • 伟伟 游客 11/19/2019

    为你点赞