#php #codeigniter #web-applications
#php #codeigniter #веб-приложения
Вопрос:
Я использую Codeigniter для создания веб-сайта, и я попытался создать функцию для загрузки всего каталога через FTP на удаленный хост, но ничего не работает
Я попробовал 2 функции, которые я нашел, но также не работает, загружено всего несколько файлов, а размер некоторых файлов равен 0 байтам
Используемые функции :
// 1St Function
public function ftp_copy($src_dir, $dst_dir) {
$d = dir($src_dir);
while($file = $d->read()) {
if ($file != "." amp;amp; $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);
Есть решение??
Комментарии:
1. какую функцию вы используете?
Ответ №1:
Если вы используете codeigniter, вы можете использовать $this-> ftp-> mirror() из их библиотеки FTP.
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();
Комментарии:
1. Я использовал зеркальную функцию, но передавал исходный каталог без косой черты, теперь я добавил косую черту в конце, и она работает. Спасибо