формирование запроса к ftp

Billy

Guest
формирование запроса к ftp

Вот отрывок:

Код:
 if ($fp = @fsockopen(server.com, 21, $errno, $errstr, 30)) {
      fputs($fp, "USER login\r\n"); 
      fputs($fp, "PASS pass\r\n"); 
      fputs($fp, "SYST\r\n"); 
      fputs($fp, "PWD\r\n"); 
      fputs($fp, "TYPE I\r\n");      
      fputs($fp, "PASV\r\n");
      fputs($fp, "REST 0\r\n"); 
      fputs($fp, "RETR /file.zip\r\n\r\n");

while (!feof($fp)) {
$file .= fread($fp,1000);
        }
}
Далее юзается переменная $file...
Что неправильно в запросе?
 

Фанат

oncle terrible
Команда форума
Это экзаменационный вопрос?
Лично я на память тонкости протокола FTP как-то не помню.

а чем не устраивает [m]ftp[/m]?
 

Billy

Guest
Я использую только запрос выше, но файл не качается, что в зпросе неправильно?
 

Фанат

oncle terrible
Команда форума
прочиталось, как "запрос свыше" :)
мне кажется,что в запросе все правильно.
но я специалист в пхп, а не в фтп.
 

SiMM

Новичок
Billy, может пассив моде нужен? А вообще - советую просто подслушать кого-нибудь и сделать аналогично. Хотя конечно [m]ftp[/m] использовать проще. И вообще - PHP FAQ: Ничего не работает! Что делать??? + RFC по FTP - в любом случае, FTP хоть что-то да должен был сказать.
 

Billy

Guest
КАК ИСПОЛЬЗОВАТЬ PASSIVE в данном запросе
Вот, я о чем
 

N9

Новичок
объясни мне зачем работатать через сокеты, если есть очень удобные механизмы по работе с FTP, ссылку выше дал Фанат

а запрос правильный - у меня тоже была беда с сокетами и фтп, с php.net/ftp все проходит
 

Billy

Guest
Я знаю достоинства ftp функций.
Но, для меня подходит только мой вариант, просто объясните, как пассив вставить.
 

Фанат

oncle terrible
Команда форума
Billy, что такое телнет, ты, конечно же, ттоже не знаешь?
 

SiMM

Новичок
Billy, давно бы всё подслушал...
Код:
1 2004.09.25 13:28:31:0162 4857| -------- CONNECTING (plugin: Apr 17 2003, 18:25:41) --------
1 2004.09.25 13:28:31:0583 0421|<-220 ProFTPD 1.2.9 Server (server.com) [server.com]
1 2004.09.25 13:28:31:0603 0020|->USER username
1 2004.09.25 13:28:31:0793 0190|<-331 Password required for username.
1 2004.09.25 13:28:31:0793 0000|->PASS *hidden*
1 2004.09.25 13:28:31:0994 0201|<-230 User username logged in.
1 2004.09.25 13:28:32:0004 0010|->SYST
1 2004.09.25 13:28:32:0184 0180|<-215 UNIX Type: L8
1 2004.09.25 13:28:32:0194 0010|->PWD
1 2004.09.25 13:28:32:0384 0190|<-257 "/" is current directory.
1 2004.09.25 13:28:32:0384 0000|->REST 0
1 2004.09.25 13:28:32:0574 0190|<-350 Restarting at 0. Send STORE or RETRIEVE to initiate transfer
1 2004.09.25 13:28:32:0605 0031|->PASV
1 2004.09.25 13:28:32:0795 0190|<-227 Entering Passive Mode.
1 2004.09.25 13:28:33:0005 0210|->LIST -la
1 2004.09.25 13:28:33:0205 0200|<-150 Opening ASCII mode data connection for file list
1 2004.09.25 13:28:33:0396 0191|<-226 Transfer complete.
1 2004.09.25 13:28:34:0627 1231|->TYPE I
1 2004.09.25 13:28:34:0828 0201|<-200 Type set to I
1 2004.09.25 13:28:34:0828 0000|->PASV
1 2004.09.25 13:28:35:0018 0190|<-227 Entering Passive Mode.
1 2004.09.25 13:28:35:0248 0230|->RETR filename.ext
1 2004.09.25 13:28:35:0459 0211|<-150 Opening BINARY mode data connection for filename.ext
1 2004.09.25 13:28:35:0689 0230|<-226 Transfer complete.
 

Billy

Guest
Дык у меня он вписан и не дает результата:

fputs($fp, "TYPE I\r\n");
fputs($fp, "PASV\r\n");
fputs($fp, "REST 0\r\n");
fputs($fp, "RETR /file.zip\r\n\r\n");
 

SiMM

Новичок
PASV перед RETR'ом должен быть - и потом - не даёт результата - не описание проблемы - иди и читай ссылку, там сказано, как задавать вопросы.
 
Сверху