PHP CURL在服务器到服务器传输期间损坏GZIP文件

PHP CURL在服务器到服务器传输期间损坏GZIP文件,php,curl,gzip,Php,Curl,Gzip,我管理的一个开源应用程序(phpMySQLAutoBackup)使用PHP gzencode压缩导出的SQL数据。它可以选择通过PHP CURL将压缩文件传输到远程服务器,但是gzencoded文件的远程副本会损坏 扩展本地保存的gz文件没有损坏。但是,在检查远程副本时,它在传输后/传输过程中已损坏。尝试使用PHP CURL和PHP ftp_fput都会损坏文件,但仅当数据编码时!省略PHP gzencode(因此传输纯文本),数据传输不会出错 那个么,在gzencoded数据从服务器传输到服务

我管理的一个开源应用程序(phpMySQLAutoBackup)使用PHP gzencode压缩导出的SQL数据。它可以选择通过PHP CURL将压缩文件传输到远程服务器,但是gzencoded文件的远程副本会损坏

扩展本地保存的gz文件没有损坏。但是,在检查远程副本时,它在传输后/传输过程中已损坏。尝试使用PHP CURL和PHP ftp_fput都会损坏文件,但仅当数据编码时!省略PHP gzencode(因此传输纯文本),数据传输不会出错

那个么,在gzencoded数据从服务器传输到服务器的过程中,如何保存数据呢

顺便说一句:也已经在PHP CURL和PHP ftp_fput中尝试了二进制模式。

什么是“损坏的”?gz根本不会解压?中间的几个字节是不同的?文件更长?更短


您是否在文本/十六进制编辑器中查看了结果损坏的文件?可能数据中嵌入了一些PHP警告。

Hi Marc,感谢您的回复。它进行压缩-原始数据的大小约为900kb,gzencoded时为120kb。已损坏-很抱歉,在此上下文中,“已损坏”是指打开gz文件并尝试提取时显示这些错误消息:“错误:遇到意外的文件结尾。”然后是“错误:要膨胀的压缩数据无效”。它无法提取任何数据。发现问题。问题不在于PHP。这是我的FTP客户端!每次我下载gz文件的副本时,它都是以ASCII模式而不是二进制模式下载的(对于所有站点,我通常会将其默认设置为二进制,但我一定错过了这一个,而它恰好是所有gz文件所在的站点)。哦,好吧,浪费了一天!因此,如果下载zip文件时遇到此错误:“错误:遇到意外的文件结尾”和“错误:要充气的压缩数据无效”。请检查FTP客户端设置,以便传输模式为:二进制。