javascript - 从 url 压缩 pdf 文件

标签 javascript node.js express

我正在尝试使用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/

相关文章:

javascript - null 或空 vs 无参数 - 使用可选参数调用 API

javascript - 按值对 Html Select 的选项进行排序的最有效方法是什么,同时保留当前选定的项目?

node.js - npm -g "whatever"打开的文件太多

javascript - Node.js 中的回调

node.js - SequelizeConnectionError : FATAL: remaining connection slots are reserved for non-replication superuser connections

javascript - 我似乎无法理解这一行代码的含义(JavaScript)

javascript - "Cannot find module ' @angular/compiler-cli/ngcc '"在我的应用程序上运行 "ng serve"时

javascript - JQuery 和 onclick 在这种情况下不起作用

node.js - Node/Express,如何将 bodyParser 配置为仅在某些路由上使用 raw

Node.js 和 Express.js 布局