gpt4 book ai didi

node.js - Node Express 从二进制字符串中保存 pdf

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:16 25 4
gpt4 key购买 nike

我在从二进制数据保存 pdf 文件时遇到问题。我从 Web 服务获取二进制文件,我的快速服务器(作为中间件)应该将文件发送到客户端。问题是客户端和 adobe acrobat reader 显示空白 pdf,所以我认为我在保存/编码二进制数据时出错了。

exports.downloadReceipt = function(req, res) {
var idPrenotazione = req.params.idPrenotazione;
var options = {
'method': 'GET',
'uri': api_url + '/ricevute/'+idPrenotazione,
'headers': {
'Authorization': req.get('Authorization')
}
}

request(options, function(error, response, body) {
var date = new Date().getTime();
var filename = 'ricevuta_'+idPrenotazione+'_'+date+'.pdf';
var file = folderPath + filename;

fs.writeFile(file, body, function(err) {
if(err)
console.log(err);
else
console.log("The file was saved!");
});

// for the moment I only save the file on server file system
res.end();


});
}

我还尝试使用 createWriteStream 而不是 writeFile,有和没有编码选项

  var options = { encoding: 'binary' };
var wstream = fs.createWriteStream(file_);
wstream.write(body);
wstream.end();

我从网络服务得到的字符串是这样的:

%PDF-1.5
%����
2 0 obj
<</Length1 17948/Length 9587/Filter/FlateDecode>>stream
x��{y`՝���!ɖ-Y�iɖF�e˖,۲lَ��v�$���s8v��B�$ �(4nHiI�RP��@�n �����׶���-P�-Wbi����H��������y��|���^��}3�p9� -[3�~�+���< ��l�E���E7�7��Њ�+�l\�1��?P��rt�
�G��!}ؿj���ɿ~� @�+H߰
o�t�&��u��5m�??ن�5�~���e�����й� �޼�3����#��~���ԷX��%����� �����
k\��\z���d���O�x@�A9(-�A>�@`�B0� �`+ؠ���Q��\ �<��R�A��*��*A5�@-��"P
�Fh�f�-�

[.......]

0000042111 00000 n 
0000042252 00000 n
0000042393 00000 n
trailer
<</Root 7 0 R/ID [<10edca6daaad5a49919bad108ba77f0a><492e2d9a8ca810421f41667217724e69>]/Info 4 0 R/Size 183>>
%iText-5.5.8
startxref
173008
%%EOF

我做错了什么?我只有一个函数可以在 base64 中获取图像(来自相同的 Web 服务),然后使用 writeFile 将其保存在服务器文件系统上,并且运行良好。

感谢帮助

最佳答案

我找到问题了!我需要在请求选项和 writeFile 中指定 'encoding': 'binary': fs.writeFile(file, body, 'binary', function(err) {

现在我可以从二进制字符串打开并正确发送图像和 pdf。

关于node.js - Node Express 从二进制字符串中保存 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486379/

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