【发布时间】:2012-09-01 16:13:53
【问题描述】:
我的本地服务器上有一个脚本。该脚本通过 CURL (POST) 将一些使用 gzip 压缩的数据发送到实时服务器,然后将其解压缩并将其存储在文件中。
当我将它发送到一个实时服务器时一切正常,但在另一台实时服务器上,如果我压缩字符串,我只会得到它的一部分。我尝试使用加密而不是压缩,问题是一样的。它仅在字符串“未触及”时才有效。
两台实时服务器位于两家不同的托管公司,并且它们具有不同的配置,我怀疑这是我的问题的原因,但我不确定原因是配置的哪一部分。我尝试使用小(40 kb 压缩)字符串,所以执行时间和内存不是问题。两台服务器上的 POST 大小均为 8MB。
有人知道问题出在哪里吗?
【问题讨论】:
-
我想说的是,听起来第二台服务器对 POST 数据的大小有限制。但是它也不适用于未压缩的字符串——那会更大。
-
我想更新我的情况....我尝试在 base64 中编码压缩和加密的字符串,现在它可以工作了...但我仍然不明白为什么...因为在另一个服务器它工作正常,无需在 base64 编码中封装。这是一种解决方法,而不是解决方案,因为必须发送的数据变得更大,所以如果有人知道上述问题的原因,我会很高兴。
-
听起来文件是使用编码 application/x-www-form-urlencoded 而不是 multipart/form-data 上传的,并且二进制文件未正确编码。你能显示你的代码吗?有关如何获取每种编码的信息,请参阅
curl_setopt的 PHP 手册条目。 -
您需要添加代码如何发送 POST 请求以及如何准备数据。
-
两台不同服务器上的操作系统是否完全相同?
标签: php string curl compression