在PHP中将带有ftp_nb_的文件上载到ftp服务器会导致目标文件为空

在PHP中将带有ftp_nb_的文件上载到ftp服务器会导致目标文件为空,php,ftp,Php,Ftp,你好 我正在编写一个脚本,通过ftp协议将文件直接发送到服务器。 为此,我使用php ftp函数。 没有宣布错误,但到达我的服务器的文件是空的。 我忘了精确,我要上传的文件是一个很大的xlsx文件。你的代码错了。您使用非阻塞,就好像它是阻塞一样 如果你想要一个简单的代码,你必须使用 如果您确实需要非阻塞代码,则只有在报告FTP\u完成后才能关闭连接。看 否则,您当前的代码将在上载几乎未启动时关闭连接 注释中建议的“睡眠”(如文中所述)仅用于测试,您无法在实际代码中可靠地使用它 第二个问题

你好 我正在编写一个脚本,通过ftp协议将文件直接发送到服务器。 为此,我使用php ftp函数。

没有宣布错误,但到达我的服务器的文件是空的。


我忘了精确,我要上传的文件是一个很大的xlsx文件。

你的代码错了。您使用非阻塞,就好像它是阻塞一样

如果你想要一个简单的代码,你必须使用

如果您确实需要非阻塞代码,则只有在报告
FTP\u完成后才能关闭连接。看

否则,您当前的代码将在上载几乎未启动时关闭连接

注释中建议的“睡眠”(如文中所述)仅用于测试,您无法在实际代码中可靠地使用它


第二个问题是,您正在以文本/ascii模式(
FTP\u ascii
)上载二进制
.xlsx
文件。您必须使用二进制模式(
FTP\u binary
)。文本/ascii模式将损坏二进制文件。因此,即使上传完成,文件也会被破坏


这将有助于:

ftp_put($conn_id, $File, $localPath.$File, FTP_BINARY);

尝试旋转错误报告
错误报告(E_ALL)我这样做了,出现了0个错误这行
ftp\u nb\u放什么($conn\u id,$File,$localPath.$File,ftp\u ASCII)返回?尝试
ftp\u nb\u put($conn\u id,“fred”,…)
此行返回2试试ftp_nb_put($conn_id,“fred”,…),它可以上传“fred”和一些内容
ftp_put($conn_id, $File, $localPath.$File, FTP_BINARY);