【发布时间】:2017-05-23 11:49:00
【问题描述】:
我想让客户端在特定的 url 上下载 gzip 压缩文件。我几乎可以正常工作 - 下载 {fileName}.gz 可以工作,但是当它解压缩时,它包含纯文件名,没有任何扩展名。我的文件是图像,所以我想要 .png 或 .jpg 例如。我该怎么做?到目前为止,我得到了这个:
文件存储在服务器上,具有唯一的名称,由shortid 生成。在GET 到特定的url 我在数据库中找到我的产品,获取名称并将其设置为文件名,如下所示:
res.setHeader("Content-Disposition", "attachment; filename=test.gz");
res.writeHead(200, {"Content-Type": `image/png`});
然后压缩:
let gzip = zlib.createGzip();
fs.createReadStream(filePath)
.pipe(gzip)
.pipe(res);
我的问题是setHeader只设置了原始文件的名称,也就是压缩后的.gz文件。如何将要解压的文件名设置为“my-image.png”?
【问题讨论】:
标签: node.js http download gzip