#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
Мой сервер получает двоичный файл PNG со стороннего сервера, который выглядит следующим образом:
�PNG
IHDR���2%FiCCPICC Profile(�c``I,(�aa``�� )
rwR���R`��� ���`����\��T��Q��k� ��.ȬE2�����o��ט�QWJjq2���i�E%�)@�ryI��d�d���!�
v�}�amp;$�Ⱦd$g$�`|d�$!��#�������BhNIQ����JR J@�s~AeQfzF��#0�R<��t��@aQ��8,�8b�@V�@��X�Ö�d���$An��Q�E�p0~c)N36����30�N���s8�amp;�����������e̷|cn`amp;���eXIfMM*>F(�iN����x���ASCIIScreenshot7� pHYs%%IR$��iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:exif="http://ns.adobe.com/exif/1.0/">
<exif:PixelYDimension>1924</exif:PixelYDimension>
<exif:PixelXDimension>3808</exif:PixelXDimension>
<exif:UserComment>Screenshot</exif:UserComment>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
_���iDOT�(��N�ɦ�@IDATx���U��� DQY"Xc��
Я отправлял ответ прямо клиенту, делая это:
const file = await downloadImageFromThirdParty()
res.status(200).send(file)
Когда я тестировал это с postman, я смог увидеть необработанные данные, но если я отправлю запрос с postman на сторонний сервер, я смогу увидеть изображение в качестве ответа.
После этого я произвел некоторые манипуляции с заголовком запроса и ответа, но, тем не менее, изображение на почтальоне не отображается.
let file = await downloadImageFromThirdParty()
file = Buffer.from(file)
res.set('Content-Type', "image/png;base64");
res.set('Content-Disposition', "attachment;filename*=UTF-8''Step-2.png")
return res.status(200).end(attachment, 'binary');
Чего мне не хватает?
Пожалуйста, простите за любую опечатку, поскольку английский — мой второй язык.
Комментарии:
1. Установка типа ответа в blob является правильной. Если downloadAttachment возвращает большой двоичный объект, просто передайте его в FileSaver.SaveAs в качестве первого аргумента.
2. @musa да, вы правы. Я обнаружил, что моя проблема заключается в том, как мой сервер возвращает изображение, поскольку postman также не может отображать изображение. Я соответствующим образом обновил свой вопрос.
3. Какой тип данных возвращает downloadImageFromThirdParty?
4. @Musa он возвращает строку, содержащую эти странные символы в начале моего вопроса.
5. Затем вам нужно будет исправить эту функцию