Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема с FTP


Автор: motorway 4.12.2008, 19:28
Я пробую загрузить файл по ftp с помощью fopen("ftp://.../a.txt", "w"), и получаю ошибку: failed to open stream: FTP server reports 227 Entering Passive Mode.

В чем м.б. проблема? Похоже, что-то с правами.

Автор: teroni 4.12.2008, 20:06
1) Если этот скрипт на локалке - попробуте выполнить его на хостинге.
2) Лучше всё-таки пользоваться функциями ftp_*.

Автор: motorway 4.12.2008, 20:39
Какой эквивалент fopen Вы посоветуете из функций ftp_, чтобы из переменных было только имя файла, текст, к-рый нужно записать, логин и пароль к серверу?

Кстати, появляется ошибка 550 Access is denied. У меня IIS на хостинге, как можно настроить, чтобы ее не было?

Автор: teroni 4.12.2008, 22:09
На php.net/fopen в комментах многое уже написано до нас...

Код

<?
ftp_connect($ftp_server);
//which can connect to the ftp server using an active connection.
ftp_login ($conn_id, $ftp_username."@".$ftp_server, $ftp_password);
$fp = fopen($PATH.$file_name, 'r');
// eg. $fp = fopen("http://www.yourwebsite.com/".$file_name, 'r');
//turn off passive mode transfers
ftp_pasv ($conn_id, false); // <== не знаю, нужна ли эта вещь, зависит от фтп!
//now upload $file_name
ftp_fput($conn_id, $file_name, $fp, FTP_ASCII));
?>

Конечно, получается длиннее и файл $PATH.$file_name нужно сначала локально создать на вашем серваке... Но что поделать, если изначальный вариант не работает...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)