以下代码用于.zip
从我们的 Web 应用程序中获取文件。该文件是通过安全关闭另一个应用程序然后压缩生成的,最后将其发送以供下载。
var dl = function() {
request({
method: 'GET',
uri: 'some_url',
headers: {
'User-Agent': 'Scripted-Download'
},
encoding: null,
jar: true
}, function(err, res, body) {
if (err) throw(err)
if (res.headers['content-type'] === 'application/zip;charset=utf-8') {
process.stdout.write('\rDownloading file ..')
var id = uuid.v4()
, file = path.resolve(__dirname, '../../' + id + '.zip')
fs.writeFile(file, body, function(err) {
if (err) throw(err)
process.stdout.write('\rFile downloaded ' + id + '.zip')
process.exit(0)
})
} else {
process.stdout.write('\rAwaiting file ..')
setTimeout(dl(), 30 * 1000)
}
})
}
这按预期工作。但是,我需要从另一个脚本中使用它。所以上面的代码返回一个id
下载的文件,然后我可以从另一个脚本中提取.zip
并将提取的文件放入具有相同id
. 然后这些文件将可供下载。
编辑基本上我需要执行这个脚本,在下载内容时提取内容,然后res.render()
在前两个步骤完成时加载 UI。这需要使用 a 来完成,id
这样两个用户就不会创建冲突的文件。