【发布时间】:2012-01-07 23:01:41
【问题描述】:
我正在尝试创建一个将本地文件夹结构复制到 FTP 点的 FTP 脚本。基本上是为了更新一个网站。
我一直在测试以下代码(已更改用户/密码/域),但连接没有失败并且似乎正在工作。
$server = 'ftp.domainname.co';
$ftp_user_name = 'user';
$ftp_user_pass = 'pass';
$dest = '.';
$source = '.';
$mode = 'FTP_ASCII';
$connection = ftp_connect($server);
$login = ftp_login($connection, $ftp_user_name, $ftp_user_pass);
if (!$connection || !$login) { die('Connection attempt failed!'); }
$upload = ftp_put($connection, $dest, $source, $mode);
if (!$upload) { echo 'FTP upload failed!'; }
ftp_close($connection);
我有信心打破这一点是 ftp_put 线。 我的问题是:
ftp_put 可以上传包含文件等的整个目录结构,还是一次只上传一个文件?我应该使用其他命令吗?
-
我认为这些变量有问题:
$dest = '.'; $source = '.'; $mode = 'FTP_ASCII';
我相信模式是正确的。
$dest - 这只是 ftp 服务器的根目录 ftp.domainname.co - 我应该把 ftp 服务器名称放在这里还是放在这里。
$source - 这是当前的本地路径 - 我也尝试过完整的 C:\etc 路径。
我收到此错误: 警告:ftp_put() 期望参数 4 很长
任何帮助都会很棒。
谢谢
【问题讨论】:
-
如果您可以使用其他协议,请考虑使用 rsync-over-SSH 方法而不是 FTP。它更安全、具有确定性、对许多常见故障具有弹性,并且在大多数情况下默认是安全的。