将zlib收集的数据从PHP传递给node.js

时间:2017-07-01 01:42:55

标签: php node.js http zlib

我试图在PHP中收缩一个非常大的字符串,然后将它通过http传递给Node服务器,然后对其进行充气并在其上进行一些业务。我的问题是放气/膨胀。

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

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(是的,我知道)。

1 个答案:

答案 0 :(得分:1)

gzcompress()生成zlib流,该流与zlib.inflateSync()兼容。 gzdeflate()生成原始deflate,与zlib.inflateRawSync()兼容。 gzencode()生成一个gzip流,该流与zlib.gunzipSync()兼容。

如果以上兼容的组合不起作用,则很可能数据在两者之间的转换中被破坏。