我们通过FTP将一些文件通过PHP cron作业发送给第三方.
但有时我们会收到以下错误:
ErrorException [ 2 ]: ftp_put(): php_connect_nonb() failed: Operation
now in progress (115) ~ MODPATH/fileop/classes/Drivers/Fileop/Ftp.php [ 37 ]
Run Code Online (Sandbox Code Playgroud)
当我说"有时"时我就是这么说的; 大多数情况下,它会很好,但我们得到的错误大约是五分之一.这与文件本身无关,因为如果我们再试一次,它们会很愉快.
我们在网上发现了类似的问题 - 与使用NAT设备的PHP中的错误或与防火墙配置有关的问题,但这意味着,如果是这种情况,它将无法工作.
那么,为什么有些时候会有效呢?
文件在FTP服务器上创建,但总是大0字节.请给我一个解决方案,以便文件上传成功.
我一直收到这个警告:
警告:ftp_put():PORT命令在第30行的C:\ xampp\htdocs\mailing\teskirim-file-simpan2.php
中成功完成FTP上传失败!

我的脚本是:
<?php
$ftp_server = "********";
$ftp_serverpath = "ftp.".$ftp_server;
$ftp_user_name = "********";
$ftp_user_pass = "***********";
$email_dir = "*******@*********";
$nyambungkeftp = ftp_connect($ftp_server);
if (false === $nyambungkeftp) {
throw new Exception('Unable to connect');
}
$loggedInnyambungkeftp = ftp_login($nyambungkeftp, $ftp_user_name, $ftp_user_pass);
if (true === $loggedInnyambungkeftp) {
echo 'Success!';
} else {
throw new Exception('Unable to log in');
}
if ((!$nyambungkeftp) || (!$loggedInnyambungkeftp)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else …Run Code Online (Sandbox Code Playgroud) 嗨有以下语法:
$source = $csv_filename;
$target = '/locexport/'.$csv_filename;
$conn = ftp_connect("ftp.server.com") or die("Could not connect");
ftp_login($conn, "ftpusername", "ftppassword");
ftp_pasv($conn, false);
$upload = ftp_put($conn, $target, $source, FTP_ASCII);
if (!$upload) { echo 'FTP upload failed!'; }
Run Code Online (Sandbox Code Playgroud)
该脚本每隔几个小时运行一次 cron 作业,并且已经运行了数月。
它突然停止工作。
echo $source 和 $destination 显示正确的路径。
错误信息是:
Warning: ftp_put() [function.ftp-put]: Opening ASCII mode data connection. in /home/shareduser/public_html/export/export.php on line 55
FTP upload failed!
Run Code Online (Sandbox Code Playgroud)
第 55 行是:
$upload = ftp_put($conn, $target, $source, FTP_ASCII);
Run Code Online (Sandbox Code Playgroud)
我曾尝试将 FTP_ASCII 更改为 FTP_BINARY,但结果相同。
任何ide如何解决这个问题?这不是权限问题,因为使用相同凭据在 Filezilla 中手动传输成功。
感谢致敬。
我正在尝试在我的网站和远程服务器之间进行 ftp 上传。
我收到此错误 PHP 警告:ftp_put(): php_connect_nonb() failed: Operation now in progress (115)。
我做了研究,我相信这是问题http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-nightmare/
问题是,我无法下载补丁,因为我使用的是 Godaddy Cpanel,他们说我们拥有的托管不允许它,我也无法通过 ssh 进入它以能够运行命令行。
我读到在 PHP v5.6+ 中应用了补丁,但我无法获得 ftp_set_option($ftpconn, USEPASVADDRESS, true); 上班。它不识别USEPASVADDRESS,我认为它会识别,因为我使用的是v5.6.22。