将 zlib 缩小的数据从 PHP 传递到 node.js

Passing zlib deflated data from PHP to node.js

我正在尝试压缩 PHP 中的一个非常大的字符串,然后通过 http 将其传递到节点服务器,然后对其进行膨胀并在其上做一些业务。我的问题是 deflate/inflate.

我尝试使用 PHP gzencode 以及 gzcompress 将字符串作为唯一参数传递。然后我尝试使用以下方法之一在节点中对其进行充气:

zlib.inflateSync(new Buffer(attachment.content)).toString()

以及

zlib.inflateRawSync(new Buffer(attachment.content)).toString()

我已经尝试了 gzencode/gzompress 和 zlib.inflateSync/zlig.inflateRawSync 的所有排列。我尝试的任何事情我总是从节点得到两个错误之一:

Error: incorrect header check

Error: invalid code lengths set

我已经确认 attachment.content 变量包含我来自 php 的 gzcompress 或 gzencode 数据,所以这不是我试图膨胀错误变量的问题。此外,我正在放气的原始字符串是一个大的 CSV 字符串。我很茫然。

ps。 PHP 5.6.16 和节点 0.12.7(是的,我知道)。

gzcompress() 生成与 zlib.inflateSync() 兼容的 zlib 流。 gzdeflate() 生成与 zlib.inflateRawSync() 兼容的原始放气。 gzencode() 生成 gzip 流,与 zlib.gunzipSync().

兼容

如果上述兼容组合不起作用,则很可能是数据因介于两者之间的某处转换而损坏。