• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序下载视频或者照片或者文件到本地相册中

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

/**

* 下载单个文件
*/
function downloadFile(type, url, successc, failc) {
checkAuth(() => {
wx.showLoading({
title: \'正在下载\',
mask: true
})
downloadSaveFile(
type,
url,
() => {
wx.hideLoading();
wx.showToast({
title: \'下载成功\',
icon: \'none\',
})
successc && successc();
},
(errMsg) => {
wx.hideLoading();
wx.showToast({
title: errMsg,
icon: \'none\',
})
failc && failc();
}
);
})
}

/**
* 下载多个文件
*/
function downloadFiles(type, urls, completec) {
let success = 0;
let fail = 0;
let total = urls.length;
let errMsgs = [];

checkAuth(() => {
wx.showLoading({
title: \'正在下载\',
mask: true
})
for (let i = 0; i < urls.length; i++) {
downloadSaveFile(
type,
urls[i],
() => {
success++;
if (success + fail === total) {
saveCompleted(success, fail, completec, errMsgs);
}
},
(errMsg) => {
fail++;
errMsg && errMsgs.push(`视频${i}${errMsg}`);
if (success + fail === total) {
saveCompleted(success, fail, completec, errMsgs);
}
}
);
}
})
}

//保存完成
function saveCompleted(success, fail, completec, errMsgs) {
wx.hideLoading();
let errMsg = \'无\';
if (errMsgs.length) {
errMsg = errMsgs.join(\'\n\');
}

wx.showModal({
title: `成功${success}项,失败${fail}项`,
content: `失败信息:\n${errMsg}`,
showCancel: false,
success(res) {
if (res.confirm) {
completec && completec();
}
}
})
}

//下载文件
function downloadSaveFile(type, url, successc, failc) {
wx.downloadFile({
url: url,
success: res => {
if (res.statusCode === 200) {
if (type === \'video\') {
//类型为视频
wx.saveVideoToPhotosAlbum({
filePath: res.tempFilePath,
success: res => {
successc && successc();
},
fail: res => {
failc && failc(\'保存失败\');
}
})
} else if (type === \'image\') {
//类型为图片
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: res => {
successc && successc();
},
fail: res => {
failc && failc(\'保存失败\');
}
})
}else if(type===\'file\'){
wx.saveFile({
tempFilePath: res.tempFilePath,
success(res) {
const savedFilePath = res.savedFilePath
console.log(res)
}
})
}
} else {
failc && failc(\'状态码非200\');
}
},
fail: res => {
failc && failc(\'下载失败\');
}
})
}

//检查权限
function checkAuth(gotc) {
//查询权限
wx.showLoading({
title: \'检查授权情况\',
mask: true
})
wx.getSetting({
success(res) {
wx.hideLoading();
if (!res.authSetting[\'scope.writePhotosAlbum\']) {
//请求授权
wx.authorize({
scope: \'scope.writePhotosAlbum\',
success() {
//获得授权,开始下载
gotc && gotc();
},
fail() {
wx.showModal({
title: \'\',
content: \'保存到系统相册需要授权\',
confirmText: \'授权\',
success(res) {
if (res.confirm) {
wx.openSetting({
success(res) {
if (res.authSetting[\'scope.writePhotosAlbum\'] === true) {
gotc && gotc();
}
}
})
}
},
fail() {
wx.showToast({
title: \'打开设置页失败\',
icon: \'none\',
})
}
})
}
})
} else {
//已有授权
gotc && gotc();
}
},
fail() {
wx.hideLoading();
wx.showToast({
title: \'获取授权失败\',
icon: \'none\',
})
}
})
}

module.exports = {
downloadFile,
downloadFiles
};


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序下载视频功能发布时间:2022-07-18
下一篇:
Fiddler抓包下载 微信小程序的视频发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap