-
downloadFile(file)
,其中file
為下載的文件地址
uni.downloadFile
-
圖片使用
uni.saveImageToPhotosAlbum
【安卓辱志、ios都合適】
-
文件使用
uni.openDocument
【安卓圖片也可以用這個(gè),ios會(huì)失敗】
// 下載文件
export function downloadFile(file) {
let acceptArr = ["JPG", "PNG", "JPEG"]
const fileSuffix = file.substring(file.lastIndexOf(".") + 1).toUpperCase();
//加載框動(dòng)畫
uni.showLoading({ title: '正在下載……' });
uni.downloadFile({ //只能是GET請(qǐng)求
url: file, //請(qǐng)求地址(后臺(tái)返回的碼流地址)
success: (res) => {
//下載成功
if (res.statusCode === 200) {
uni.hideLoading(); //隱藏加載框
//保存文件
var tempFile = res.tempFilePath;
console.log(tempFile, res, 'tempFilePath')
if (acceptArr.indexOf(fileSuffix) >= 0) {
console.log('圖片')
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function () {
uni.showToast({
title: "保存成功",
icon: "none"
});
},
fail: function () {
uni.showToast({
title: "保存失敗狞膘,請(qǐng)稍后重試",
icon: "none"
});
}
});
} else {
console.log('文件')
//保存成功之后 打開文件
uni.openDocument({
filePath: tempFile,
showMenu: true, //微信小程序 downloadFile生成的tempFilePath為臨時(shí)路徑無法直接保存到手機(jī) 顯示菜單設(shè)置可以手動(dòng)保存到手機(jī)本地
fail: (e) => {
console.log(e, '打開失敗')
let nowEno = uni.getSystemInfoSync().platform; //當(dāng)前環(huán)境
console.log(e, '打開失敗', nowEno)
if (nowEno == 'ios') { //ios打開臨時(shí)路徑文件失敗 設(shè)置ios環(huán)境下讀取臨時(shí)路徑文件可以打開
uni.getFileSystemManager().readFile({
filePath: tempFile,
success: res => {
var filebuffer = res.data
return filebuffer
},
fail: console.error
})
} else {
uni.showToast({
title: '打開失敗'
})
}
}
})
}
}
},
fail: (e) => {
console.log(e, '文件下載失敗')
uni.showToast({
title: '文件下載失敗',
icon: "none",
})
}
});
}