uniapp下载文件到本地并预览

ios端保存文件并预览 

Download(item){
let system = uni.getSystemInfoSync().platform;
if (system == 'ios') {
	uni.downloadFile({
			url: item.fileLink,//下载地址接口返回
			success: (data) => {
				if (data.statusCode === 200) {
						//文件保存到本地
						uni.saveFile({
							tempFilePath: data.tempFilePath, //临时路径
							success: function(res) {
								uni.showToast({
									icon: 'none',
									mask: true,
									title: '文件已保存:' + res.savedFilePath, //保存路径
									duration: 2000,
								});
								setTimeout(()=>{
								
								let filePath = res.savedFilePath
								filePath = encodeURI(filePath);
								//打开文档查看
								uni.openDocument({
									filePath,
									success: function(res) {
										console.log('打开文档成功');
									},
									fail: res1 => {
										uni.getImageInfo({
											src: filePath,
											success: imgInfo => {
												uni.previewImage({
													current: filePath,
													urls: [filePath]
												});
											},
											fail: err => {
												uni.showToast({
													title: '不支持该格式',
													icon: 'none'
												});
												return;
											}
										});
									}
								});
							
							},2000)
							}
						});
				}
			},
			fail: (err) => {
				console.log(err);
				uni.showToast({
					icon: 'none',
					mask: true,
					title: '失败请重新下载',
				});
			},
		});
}

安卓端保存并预览

let url = item.fileLink
let dtask = plus.downloader.createDownload(url, 
    {
	    filename: "file://storage/emulated/0/附件/" + item.fileName  //利用保存路径,实现下载                        
        文件的重命名
    }, 	
	function(d, status) {
		//d为下载的文件对象
		if (status == 200) {
		//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
		let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
						  plus.runtime.openFile(d.filename); //选择软件打开文件
			} else {
			  //下载失败
			  plus.downloader.clear(); //清除下载任务
		}
	})
dtask.start();

参考 https://blog.csdn.net/weixin_44692055/article/details/120031862

你可能感兴趣的:(前端,uni-app)