[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP и FTP
Prontit
Добрый день!

Никак не получается загрузить файл с FTP сервера. Делаю так:

 $host = "ftp://ftp.server.ru";
$connect = ftp_connect($host);
if(!$connect)
{
echo("Ошибка соединения");
exit;
}
else
{
echo("Соединение установлено");


здесь все ок, соединение проходит. дальше авторизируюсь:

 $user = "user";
$password = "password";
$result = ftp_login($connect, $user, $password);


тоже все в порядке. потом пытаюсь загрузить файл:

$local_file = "C:/123.jpg";
$remote_file = "3.jpg";
ftp_get($connect, $local_file, $remote_file, FTP_ASCII);


ошибку не выдает, так же как и файл)

что я делаю не так?? Может не правильно указываю фолдер на FTP?
если у корневой папке есть папка, допустим 123, надо писать "/123.3.jpg"? так пытался, тоже не работает

bulgakov
Может у вас нет прав на чтение файла на самом ftp сервере? Или может неправильно указаны пути...
Prontit
Цитата (bulgakov @ 15.07.2011 - 05:55)
Может у вас нет прав на чтение файла на самом ftp сервере? Или может неправильно указаны пути...

права есть. через тотал все отлично работает) мне кажется что с путями что-то не то. в $local_file насколько я понял можно любую дирикторию на локальной машине указать, а в $remote_file , если файл лежит вкорневом каталоке, можно указать просто имя...или нет?
bulgakov
А попробуйте запихнуть это в if:


if(ftp_get($connect, $local_file, $remote_file, FTP_ASCII)){
echo 'Файл получен';
}
else{
echo 'Ошибка';
}
bulgakov
И может быть попробовать сохранить файл в туже директорию:



$local_file = "123.jpg";
$remote_file = "3.jpg";
if(ftp_get($connect, $local_file, $remote_file, FTP_ASCII)){
echo 'Файл получен';
}
else{
echo 'Ошибка';
}
bulgakov
А удаленный файл лежит прямо в корне ftp или в поддиректории? Если в поддиректории то пропишите их в пути.
Prontit
Цитата (bulgakov @ 15.07.2011 - 05:59)
А попробуйте запихнуть это в if:


if(ftp_get($connect, $local_file, $remote_file, FTP_ASCII)){
echo 'Файл получен';
}
else{
echo 'Ошибка';
}

странно, но ни одно echo не срабатывает..
bulgakov
Хм.. а если поглядеть что возвращается?:


echo ftp_get($connect, $local_file, $remote_file, FTP_ASCII);
Prontit
Цитата (bulgakov @ 15.07.2011 - 06:08)
Хм.. а если поглядеть что возвращается?:


echo ftp_get($connect, $local_file, $remote_file, FTP_ASCII);

все заработало!!! Проблема была в хостинге biggrin.gif

Спасибо за помощь!
bulgakov
А ну хорошо, а то я уже думал что за чудеса.
Prontit
Цитата (bulgakov @ 15.07.2011 - 06:21)
А ну хорошо, а то я уже думал что за чудеса.

=))

еще такой вопрос - можно вытаскивать файл не по имени, а по дате создания например, ну или по другим каким-нибудь параметрам (размер, тип)?
bulgakov
Мм сейчас навскидку не скажу но наверное вам надо будет перебирать в цикле файлы в директории и по соответствующему условию их сохранять, возможно вам пригодятся эти функции.
bulgakov
filesize(), filetype(), filemtime() и уже их в if пихайте. Я думаю разберетесь.
Prontit
Цитата (bulgakov @ 15.07.2011 - 07:06)
filesize(), filetype(), filemtime() и уже их в if пихайте. Я думаю разберетесь.

у меня не получается получить информацию о файле сразу с сервера. приходится его сначала качать на локальный фолдер,. это накладно...
Prontit
использовал
ftp_mdtm($connect, $remote_file);  


вроде работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.