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);
},
fail: e => {
uni.showToast({
title: `保存失敗` + e
});
}
});
}
},
fail: e => {
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);
}
);
});
}
});
}
});
}