外国的npm 有详细的介绍,看不懂的可以看看我的代码
下载依赖 npm install unzip
unzipUrl(file_url) {
var unzip = require('unzip-js')
return new Promise((resolve, reject) => {
unzip(file_url, function (err, zipfile) {
if (err) {
reject(err)
return
}
zipfile.readEntries(function (err, entries) {
if (err) {
reject(err)
return
}
entries.forEach(function (entry) {
zipfile.readEntryData(entry, false, function (err, readStream) {
if (err) {
reject(err)
return
}
let jsonstring = ''
readStream.on('data', function (chunk) {
for (const code of chunk) {
jsonstring += String.fromCharCode(code)
}
})
readStream.on('error', function (err) {
reject(err)
})
readStream.on('end', function () {
// console.log('end json is :')
// console.log(jsonstring)
console.log('json data (unzipped) :')
let jsondata = JSON.parse(jsonstring)
console.log(jsondata)
resolve(jsondata)
})
})
})
})
})
})
},
async loadUrlContent(file_url) {
console.log(`loading file url : ${file_url}`)
let jsondata = null
if (file_url.endsWith('.zip')) {
console.log('zip data:')
jsondata = await this.unzipUrl(file_url)
this.readJsonData(jsondata)
} else {
const resp = await this.$axios.get(file_url)
jsondata = resp.data
this.readJsonData(jsondata)
}
console.log(`url loaded`)
},
readJsonData(jsondata) {
for (let i = 0; i < jsondata.items.length; i++) {
if (i <= 19) {
this.items.push(jsondata.items[i])
if (jsondata.head.images) {
this.images.push(jsondata.head.images[i])
}
}
}
},