ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

uniapp文件下载

2022-03-25 15:00:26  阅读:208  来源: 互联网

标签:uniapp 文件 res sFilePath plus split uni sFileName 下载


uni.downloadFile({
//只能是GET请求
url: base.baseUrl + `/electricStation/exportData?siteId=1&startTime=${e[0]}&endTime=${e[1]}`, //请求地址
header: {
Authorization: 'Bearer ' + uni.getStorageSync('SET_TOKEN') //请求头。
},
success: res => {
//下载成功
if (res.statusCode === 200) {
var sFilePath = res.tempFilePath;
//保存文件
uni.saveFile({
tempFilePath: res.tempFilePath, //下载成功之后返回的临时路径
success: e => {
console.log(e);
var savedFilePath = e.savedFilePath;

//解决下载返回文件名和保存文件名不一致问题
this.fSetFileName(e.savedFilePath, sFilePath);
//保存成功之后 打开文件
// uni.openDocument({
// filePath: e.savedFilePath,
// fail: e => {
// uni.showToast({
// title: `打开失败` + e
// });
// }
// });
},
fail: e => {
uni.showToast({
title: `保存失败` + e
});
}
});
}
},
fail: e => {
// this.isDownloading=false
uni.showToast({
title: `文件下载失败` + e,
icon: 'none'
});
}
});

 

fSetFileName(sFilePath, sFileName) {
var sFileName = sFileName.split('/')[sFileName.split('/').length - 1]; //原来的文件名
var aFileUrl = sFilePath.split('/').splice(0, sFilePath.split('/').length - 1); //saveFile API保存的本地地址
var url = base.baseUrl + `/electricStation/exportData?siteId=1&startTime=${this.range[0]}&endTime=${this.range[1]}`; //请求地址
let dtask = plus.downloader.createDownload(
url,
{
filename: 'file://' + aFileUrl.join('/') + '/' + sFileName //利用保存路径,实现文件的重命名
},
(d, status) => {
if (status == 200) {
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
this.fGetSavedFileList();

uni.openDocument({
filePath: fileSaveUrl,
fail: e => {
uni.showToast({
title: `打开失败` + e
});
}
});
} else {
//下载失败
plus.downloader.clear(); //清除下载任务
}
}
);
dtask.setRequestHeader('Authorization', 'Bearer ' + uni.getStorageSync('SET_TOKEN'));
dtask.start();
},

// 获取已下载列表
fGetSavedFileList() {
uni.getSavedFileList({
success: res => {
res.fileList.forEach(oData => {
let aRray = oData.filePath.split('/');
let sFileName = aRray[aRray.length - 1].split('.')[0];
if (parseFloat(sFileName).toString() == 'NaN') {
//这里是过滤掉文件名是时间戳的文件
console.log(res.fileList);
} else {
//这里是把时间戳的文件删掉
plus.io.resolveLocalFileSystemURL(oData.filePath, entry => {
//获取文件对象
entry.remove(
entry => {
plus.console.log('Remove succeeded');
},
e => {
alert(e.message);
}
);
});
}
});
}
});
}

标签:uniapp,文件,res,sFilePath,plus,split,uni,sFileName,下载
来源: https://www.cnblogs.com/yqq520/p/16054665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有