我正在尝试使用archiver从现有链接压缩多个pdf文件npm 模块。我可以将多个文件从内存或本地压缩到我的计算机,但当我在 fs.createReadStream()
中传入 url 时,它不起作用。
fs.createReadStream()告诉我,我需要做的就是传入我想要从中传输数据的文件的路径。我知道我正在做一些非常错误的事情,无法弄清楚到底是什么。
var archiver = require('archiver');
var archive = archiver('zip');
res.set('Content-Type', 'application/zip');
res.set('Content-Disposition', 'attachment; filename=123.zip');
archive.pipe(res);
archive
.append(fs.createReadStream('https://URL-1-XXX.pdf'), { name: 'file1.pdf' });
.append(fs.createReadStream('https://URL-1-XXX.pdf'), { name: 'file2.pdf' });
archive.finalize(function(err, bytes) {
if (err)
throw err;
console.log('done: ', bytes);
});
最佳答案
fs.createReadStream 用于读取存储在磁盘上的文件,而不是发出 HTTPS 请求。我建议您进一步阅读 API 文档并研究 https 模块。
试试这个:
var request = require('request');
archive
.append(request.get('https://URL-1-XXX.pdf'), { name: 'file1.pdf' });
.append(request.get('https://URL-1-XXX.pdf'), { name: 'file2.pdf' });
关于javascript - 从 url 压缩 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713070/