【问题标题】:Automatic uploading a local directory all files to ftp server using php使用php自动将本地目录所有文件上传到ftp服务器
【发布时间】:2015-11-17 02:32:01
【问题描述】:

我想将仅包含文本文件的目录内容上传到 ftp 服务器,它应该通过 windows 任务计划自动执行。现在我正在使用它,但它只上传一个文件,我的要求基本上是用户可以将其文件复制到特定文件夹,并且应该尽快将其上传到 ftp 服务器上。 这是我现在使用的代码:

$host = 'ftp.xyz.com';
$usr = 'abc123';
$pwd = 'l2345';
date_default_timezone_set('Asia/Kuala_Lumpur');
$date = date('d-m-Y_hi');
$name = $date.".txt";
$local_file = '/Applications/XAMPP/xamppfiles/htdocs/Conversion/Upload/xyz/abc.txt';
$ftp_path = '/public_html/xyz/abc.txt';
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_BINARY);
echo (!$upload) ? 'Cannot upload' : 'Upload complete';
echo "\n";
if (!function_exists('ftp_chmod')) {
function ftp_chmod($ftp_stream, $mode, $filename){
    return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
}
}
if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
echo $ftp_path . " chmoded successfully to 666\n";
} else {
echo "could not chmod $file\n";
}
ftp_close($conn_id);

【问题讨论】:

    标签: php ftp


    【解决方案1】:

    要上传多个文件,您需要在代码中使用循环发出一系列 FTP(连接和)传输...或在 FTP 的交互模式中使用通配符。

    【讨论】:

    • 你的意思是说先扫描目录看看有多少文件要上传?而不是将所有文件名放入一个数组并将所有 ftp 连接代码放入该块中?
    • 非常感谢,我已经尝试过了,瞧!它的工作......但它不会花费太长时间吗?因为建立连接而不是断开其他文件
    • 酷。是的,避免为每个文件重新连接和重新登录可能会更快。如果有办法使用通配符(星号)发送多个文件,那会更快。
    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多