const axios = require('axios')
import JSZip from 'jszip'
import { saveAs } from 'file-saver'
function getPicture(url) {
return new Promise((resolve, reject) => {
axios({
headers: {
'Cache-control': 'no-cache'
},
url,
method: 'GET',
responseType: 'arraybuffer'
}).then(data => {
resolve(data.data)
}).catch(error => {
reject(error)
})
})
}
export function download(images) {
MessageBox.prompt('请输入文件夹名', '另存为', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPattern: /\S/,
inputErrorMessage: '请输入文件夹名'
}).then(({ value }) => {
const zip = new JSZip()
const folder = zip.folder(value)
const promises = images.map(image => {
return getPicture(image).then(data => {
const name = image.split('/')[image.split('/').length - 1]
folder.file(name, data, { binary: true })
})
})
Promise.all(promises).then(() => {
zip.generateAsync({ type: 'blob' }).then(content => {
saveAs(content, value)
})
})
}).catch(() => {})
}