gpt4 book ai didi

javascript - 如何在 Node js 中保存表示为字符串的 zip 文件

转载 作者:行者123 更新时间:2023-12-03 05:35:15 25 4
gpt4 key购买 nike

我收到了来自 ebay-api 的回复

--MIMEBoundaryurn_uuid_C91296EA5FF69EE9571479882375576565344 Content-Type: application/xop+xml; charset=utf-8; type="text/xml" Content-Transfer-Encoding: binary Content-ID: <0.urn:uuid:C91296EA5FF69EE9571479882375576565345>

Success1.1.02016-11-23T06:26:15.576Z514 --MIMEBoundaryurn_uuid_C91296EA5FF69EE9571479882375574545344 Content-Type: application/zip Content-Transfer-Encoding: binary Content-ID:

PKY'uIi[��@�50014028337_report.xmlUT y�2Xy�2Xux 00�R�j�@��+��[��PlX#�(�x,=l�q]Lfewc��w Ĥ��O��١�HT���t��GGT� ��6�;���'������.$����=d����m;c}Wߦ�RW�A f�����g�I��4U��x��3��f���ғ{f��xj�,+���ۖI%5��B's��G,#��t,L{�c�����MD笓��)!�9�� �M�o;8_��<�i�y����sz���u���=��Ջ^2�S��%+2�2�`QV�$�����~?�w�ǥ�_Q�퉦�'PKY'uIi[��@���50014028337_report.xmlUTy�2Xux 00PK\� --MIMEBoundaryurn_uuid_C91296EA5FF69EE9571479882375576565344--

这是字符串类型。我提取了附加的 zip 文件数据,即

PKY'uIi[��@�50014028337_report.xmlUT y�2Xy�2Xux 00�R�j�@��+��[��PlX#�(�x,=l�q]Lfewc��w Ĥ��O��١�HT���t��GGT� ��6�;���'������.$����=d����m;c}Wߦ�RW�A f�����g�I��4U��x��3��f���ғ{f��xj�,+���ۖI%5��B's��G,#��t,L{�c�����MD笓��)!�9�� �M�o;8_��<�i�y����sz���u���=��Ջ^2�S��%+2�2�`QV�$�����~?�w�ǥ�_Q�퉦�'PKY'uIi[��@���50014028338_report.xmlUTy�2Xux 00PK\�

这表明其中有一个report.xml。因此,当我将这些数据写入 zip 文件时,它会创建一个 zip 文件,并且在提取时会出现错误。

fs.writeFile("./static/DownloadFile.zip", fileData, 'binary', function(err){
if (err) throw err;
console.log("success");
});

如何正确地将这些数据写入 zip 文件中。请建议。如果需要更多信息。

编辑:我尝试用 PHP 编写 zip 文件,并使用以下代码成功编写它:

$zipFilename="DownloadFile.zip";
$data = $fileData;
$handler = fopen($zipFilename, 'wb')
or die("Failed. Cannot Open $zipFilename to Write!</b></p>");
fwrite($handler, $data);
fclose($handler);

请告诉我如何在nodejs中实现同样的事情。

最佳答案

根据您使用的 HTTP 客户端,实现可能会略有变化。

使用axios我正在做类似这样的事情:

  • 我正在请求 zip 文件,因此我将 Accept header 指定为 application/zip
  • 为了获取 buffer 而不是 Binary,请将 responseType 指定为 arrayBuffer
const res = await axios.get('/routToThat/file', {
headers: {
Accept: 'application/zip',
},
responseType: 'arraybuffer',
});

通过执行后者,而不是从响应中接收 Binary:

A@B�ArE⏾�7�ϫ���f�걺N�����Yg���o_M^�D�T�U X_���e?� hi\...

我收到一个缓冲区:

Buffer(22781691) [80, 75, 3, …]

一旦请求得到解决并且我有了该缓冲区,我就使用 fs 中的相同 writeFile 函数

注意:我没有在 writeFile 中指定 Encoding

fs.writeFile(name, res.data, (err) => {
if (err) throw err;
console.log("success");
});

关于javascript - 如何在 Node js 中保存表示为字符串的 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40757545/

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