1:Connect ok!
1:PWD
1:257 "/"
1:Get directory
1:TYPE A
1:200 Switching to ASCII mode.
1:PASV
1:550 Permission denied.
1:PORT 192,168,1,2,4,129
1:200 PORT command successful. Consider using PASV.
1:LIST
1:150 Here comes the directory listing.
1:Download
1:Waiting for server...
1:226 Directory send OK.
PHP и активный FTP-сервер
Нужно раз в сутки файлик выкладывать на разные фтп-сервера. Все работает, только вот один сервер никак не хочет получать файл! Работаю с фтп через CURL (пробовал через стандартные ftp-функции PHP, но они тоже не работают). Начал рыть:
Код:
т.е. клиент пытается перейти в пассивный режим, а сервер этого сделать не позволяет. Вопрос: как работать на php с активным FTP-сервером?
Код:
<?php
$pasv_flag = true;
ftp_pasv($connect, $pasv_flag);
?>
$pasv_flag = true;
ftp_pasv($connect, $pasv_flag);
?>
помогло. спасибо
Пожалуйста. Для этого я тут и есть )
сегодня ночью проверил - все работает. Теперь делаю тоже самое - болт!
$pasv_flag = false;
if (!ftp_pasv($conn_id, $pasv_flag))
echo "ftp_pasv() error!<br>";
else
echo "ftp_pasv($pasv_flag) ok!<br>";
проходит без ошибок, а вот
$upload = ftp_put($conn_id, "del.me", "local.file", FTP_BINARY);
выдает ошибку!
Решил попробовать через сокеты сделать. Задача простая - подключиться к фтп и залить файл в корень. Вопрос - какие команды вводить через telnet, чтобы добиться требуемого результата?
/* Connect */
$fc = fsockopen($server, 21);
if (!$fc) {
print('Server is unavailable<br>');
}
fgets($fc);
/* Authentication */
fputs($fc, 'user '.$user."\r\n");
$res = fgets($fc);
if (substr($res, 0, 3) != 331) {
print('Invalid user name<br>');
}
fputs($fc, 'pass '.$pass."\r\n");
$res = fgets($fc);
if (substr($res, 0, 3) != 230) {
print('Invalid password<br>');
}
/* Set passive mode for transaction */
fputs($fc, "TYPE A\r\n");
$res = fgets($fc);
if (substr($res, 0, 3) != 200) {
print('TYPE A has failed!<br>');
}
fputs($fc, "PORT 217,116,151,36,6,120\r\n");
$res = fgets($fc);
echo "PORT answer: ".$res;
echo "<br>";
exit;
Выдает: PORT answer: 500 Illegal PORT command.
RFC 959 видел. Запутался в нем. Может кто уже разбирался - помогайте. Еще было-бы неплохо увидеть готовые классы для работы с фтп через сокеты.