1 Star 0 Fork 0

momo/imgcache

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
download.js 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
ponjs 提交于 2020-10-13 10:24 . 修复小程序无法设置自定义样式
import path from 'path'
var queue = [] // 下载队列 避免重复下载
/**
* 下载文件
* @param {string} url 要下载文件资源地址
* @param {string} [dir] 下载文件保存的路径
* @returns {Promise<string|null>} 下载后的本地路径
*/
function download(url, dir) {
return new Promise(resolve => {
if (queue.includes(url)) return
queue.push(url)
const task = plus.downloader.createDownload(
url,
dir ? { filename: filename(url, dir) } : {},
(download, status) => {
queue.splice(queue.indexOf(url), 1)
resolve(status === 200 ? download.filename : null)
}
)
task.start()
})
}
/**
* 生成随机文件名后的路径
* @param {string} url 网络地址
* @param {string} dir 保存的路径
* @returns {string} 随机文件名后的路径
*/
function filename(url, dir) {
const CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
let random = ''
for (let i = 0; i < 4; i++) {
const index = parseInt(Math.random() * CHARS.length)
random += CHARS[index]
}
dir = dir.replace(/(^\/)|(\/$)/g, '')
const name = Date.now() + random + path.extname(url)
return `_doc/${dir}/${name}`
}
export default download
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gaeagame/imgcache.git
git@gitee.com:gaeagame/imgcache.git
gaeagame
imgcache
imgcache
master

搜索帮助