【问题标题】:Upload Entire Directory via PHP to a remote host via FTP通过 PHP 将整个目录通过 FTP 上传到远程主机
【发布时间】:2011-10-14 17:21:41
【问题描述】:

我正在使用 Codeigniter 创建一个网站,我尝试创建一个函数来通过 FTP 将整个目录上传到远程主机,但没有任何效果

我试了2个发现的函数,还是不行,只上传了几个文件,有些文件大小是0字节

使用的功能:

// 1St Function

public function ftp_copy($src_dir, $dst_dir) {
        $d = dir($src_dir);

        while($file = $d->read()) {

            if ($file != "." && $file != "..") {

                if (is_dir($src_dir."/".$file)) {

                    if (!@ftp_chdir($this->conn_id, $dst_dir."/".$file)) {

                        ftp_mkdir($this->conn_id, $dst_dir."/".$file);
                    }

                    ftp_copy($src_dir."/".$file, $dst_dir."/".$file);
                }
                else {

                    $upload = ftp_put($this->conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY);
                }
            }
        }

        $d->close();
    }


// 2nd Solution from Stackoverflow question
    foreach (glob("/directory/to/upload/*.*") as $filename)
        ftp_put($ftp_stream, basename($filename) , $filename, FTP_BINARY);

有什么办法吗??

【问题讨论】:

  • 你用的是什么功能?

标签: php codeigniter web-applications


【解决方案1】:

如果您使用的是 codeigniter,您可以使用他们的 FTP 库中的 $this->ftp->mirror()。

http://codeigniter.com/user_guide/libraries/ftp.html

$this->load->library('ftp');

$config['hostname'] = 'ftp.example.com';
$config['username'] = 'your-username';
$config['password'] = 'your-password';
$config['debug']    = TRUE;

$this->ftp->connect($config);

$this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');

$this->ftp->close();

【讨论】:

  • 我正在使用镜像功能,但我传递的源目录没有斜杠,现在我添加了斜杠并且它正在工作。谢谢
猜你喜欢
  • 2010-10-29
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 2011-03-15
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多