gpt4 book ai didi

node.js - PDF 文件在浏览器中下载不正确,但可以使用 wget 或使用 NodeJS/Express curl

转载 作者:搜寻专家 更新时间:2023-10-31 23:27:17 28 4
gpt4 key购买 nike

我在 nodejs/express 中有一个应用程序生成 PDF 并将其流式传输到响应中。当我通过 curl 或 wget 执行请求时,文件下载正常。

当我在浏览器上执行请求时,文件下载不正确。奇怪的是,文件大小更大(使用 wget/curl 下载时为 59k,但在浏览器中下载时为 101k)

这是生成响应的片段:

fs.readFile('file.pdf', function(err, data) {
res.setHeader('Content-Disposition', 'attachment; filename=' + req.params.id + '.pdf');
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Length', data.length);
res.status(200).end(data);
});

我不知道我是否缺少标题,或者请求中是否有我应该注意但我没有注意的内容,但我不知道为什么会这样。有什么想法吗?

最佳答案

我自己想出来的。

不得不改变这一行

res.status(200).end(data);

res.status(200).end(data, 'binary');

一旦我更改它,pdf 就完美地发送了。

如果未设置编码,Express 会尝试将其写入 UTF-8(这会产生不希望的结果)。

每当通过 Express 发送二进制文件时都会考虑到这一点。

关于node.js - PDF 文件在浏览器中下载不正确,但可以使用 wget 或使用 NodeJS/Express curl ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557261/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com