Php ftp_已经工作了一个月,现在已经停止了吗?
Hi具有以下语法:Php ftp_已经工作了一个月,现在已经停止了吗?,php,upload,ftp,Php,Upload,Ftp,Hi具有以下语法: $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 = $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!'; }
这个脚本每隔几个小时运行一次cron作业,已经运行了几个月
它突然停止工作了
回显$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!
第55行是:
$upload = ftp_put($conn, $target, $source, FTP_ASCII);
我曾尝试将FTP_ASCII更改为FTP_二进制,但结果相同
任何IDE如何对此进行故障排除?这不是权限问题,因为使用相同凭据的Filezilla中的手动传输成功
感谢和问候。您可以尝试切换到被动模式(将其设置为
true
):
可能目标的防火墙发生了变化。这里也有类似的问题,但我得到的警告是:
ftp\u fput():接受的数据连接
使用FTP_二进制,FTP_ASCII
使用被动/主动模式,运气不佳。
可能是虫子吗?看
编辑:
找到了一个解决方法,不确定它是否适用于任何人,因为它涉及SSL连接,但糟糕的是,它在上次PHP更新(更新为5.6.14)之前工作正常
解决方案:不要使用
ftp\u ssl\u connect
而是使用ftp\u connect
谢谢。我确实试过这个,对不起,应该在问题中提到它,没有运气和问题仍然存在?如何排除故障?谢谢。您是否尝试使用FTP程序只是为了查看您是否可以连接并有权写入文件?谢谢。是的,我试过了,用同样的ftp凭证用filezilla进行了手动传输,效果100%。只是php组件失败了,我不知道为什么。再次感谢。嗨,是的,我用filezilla和100%进行了手动转移。将此脚本移动到另一台服务器,它工作正常,因此这是我的托管服务器的问题,而不是ftp服务器或脚本。谢谢你的时间,这帮我解决了。我正在处理FTP备份代码,该代码在碰撞PHP版本后停止工作。使用ftp登录后启用被动模式成功。
ftp_pasv($conn, true);