常見問題

uniapp 下載文件到指定目錄中及重新命名

常見問題

2015

字體:

uniapp 下載前需要開啟app 應(yīng)用讀取權(quán)限

開啟方式

  1. 手動(dòng)開啟

  2. uniapp 權(quán)限中添加讀取權(quán)限

  3. 添加一下代碼即可

//var data={mid='123456',title:'文件名稱'  }
xiazhai(data, index) {
	var downFileName = data.title + '.mp3';
	var filePath = "file://storage/emulated/0/Vpi視頻/" + downFileName;
	// 檢查文件是否已存在
	plus.io.resolveLocalFileSystemURL(filePath, function(entry) {
		// 文件已存在,不進(jìn)行下載
		uni.showToast({
			icon: 'none',
			mask: true,
			title: '文件已存在,無需重復(fù)下載',
			duration: 2000
		});
	}, function() {
		uni.showLoading({
			title: '正在下載'
		});

		var downFileName = data.title + '.mp3';
		var url = 'http://music.163.com/song/media/outer/url?id=' + data.mid + '.mp3';
		let dtask = plus.downloader.createDownload(url, {
			filename: "file://storage/emulated/0/Vpi視頻/" + downFileName //利用保存路徑,實(shí)現(xiàn)下載文件的重命名
		}, (d, status) => {
			//d為下載的文件對(duì)象
			if (status == 200) {
				uni.hideLoading();
				uni.showToast({
					icon: 'none',
					mask: true,
					title: '已保存到文件夾:/Vpi視頻/' + newFileName, //保存路徑
					duration: 3000,
				});
				//下載成功,d.filename是文件在保存在本地的相對(duì)路徑,使用下面的API可轉(zhuǎn)為平臺(tái)絕對(duì)路徑
				let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
				setTimeout(() => {
					plus.runtime.openFile(d.filename); //選擇軟件打開文件
				}, 1500)
			} else {
				//下載失敗
				uni.hideLoading();
				uni.showToast({
					icon: 'none',
					title: '下載失敗,請(qǐng)稍后重試',
				});
				plus.downloader.clear(); //清除下載任務(wù)

			}
		})
		dtask.start();
	});
	},


[聲明]原創(chuàng)不易,請(qǐng)轉(zhuǎn)發(fā)者備注下文章來源(hbsjsd.cn)【速建時(shí)代】。