php - ftp_put 工作了一个月,现在停止了吗?

标签 php upload ftp

您好,语法如下:

$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_BINARY,但结果相同。

任何ides如何解决这个问题?这不是权限问题,因为使用相同凭据在 Filezilla 中手动传输成功。

感谢和问候。

最佳答案

您可以尝试切换到被动模式(将其设置为 true):

ftp_pasv($conn, true);

也许目的地的防火墙发生了变化。

关于php - ftp_put 工作了一个月,现在停止了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17851648/

相关文章:

PHP MySQL快速插入多行

java - 使用 java sdk 将带有用户元数据的大文件上传到 Amazon S3

php - AngularJS - 多部分/表单数据 POST 中缺少边界

php - 如何获取重复值的计数并加入表以检索每个值的名称?

php - 如何在浏览器中回显换行符?

Java ftp下载状态栏

使用 wget 下载 FTP 文件超时

java - 上传到imgur,已经一周失败了

android - 如何通过在android中选择它们来从sd卡上传图像

Azure - 网站 - WebJob - 主动 FTP 下载