最近有用到微信小程序的downloadFile接口,但是在真機上出現了文件後綴爲unknown,導致文件保存失敗,這裏記錄下
1.下載文件
/* 直接這樣寫的話,會出現下載文件後綴名爲unknown的情況 */
wx.downloadFile({
url: '',
success (res) {
console.log(res.filePath);
}
})
/* 使用時間戳爲下載後的文件的名字 */
let fileName = new Date().valueOf();
wx.downloadFile({
/* url 爲要下載的文件鏈接 */
url: '',
/* filePath指定文件下載後存儲的路徑,wx.env.USER_DATA_PATH */
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
success: res => {
let filePath = res.filePath;
wx.saveVideoToPhotosAlbum({
filePath,
success: file => {
wx.hideLoading();
/* 刪除緩存 */
let fileMgr = wx.getFileSystemManager();
fileMgr.unlink({
filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4',
success: function (r) {
},
})
},
fail: err => {
wx.hideLoading();
/* 拒絕授權時顯示 */
if (err.errMsg === 'saveVideoToPhotosAlbum:fail auth deny') {
wx.showModal({
title: '提示',
content: '需要您授權保存相冊',
showCancel: false,
success: data => {
/* 打開權限設置 */
wx.openSetting({
success: setting => {
if (setting.authSetting['scope.writePhotosAlbum']) {
wx.showModal({
title: '提示',
content: '獲取權限成功,再次點擊下載即可保存',
showCancel: false,
})
} else {
wx.showModal({
title: '提示',
content: '獲取權限失敗,將無法保存到相冊哦',
showCancel: false,
})
}
},
})
}
})
}
},
},
fail: err => {
wx.hideLoading();
if (err.errMsg == 'downloadFile:fail createDownloadTask:fail url not in domain list') {
wx.showToast({
title: '服務器錯誤,請聯繫相關管理員',
icon: 'none'
})
}
},
complete: () => {
wx.hideLoading();
}
})
2.下載圖片
- 下載圖片的步驟和上面是一樣的,就是在保存的時候,api使用的不一樣
wx.saveImageToPhotosAlbum({
filePath: '',
success: () => {}
})