PDA

Просмотр полной версии : Отправка файла на ftp сервер(WinAPI) [Delphi]


Dr.KoD
17.04.2008, 21:36
Соединение реализовал, все нормуль подключается, а вот передать файл не получается, подскажите как правильно передать файл(название файла и собственно его содержимое(использую обычный текстоваый файл))? за ранее благодарствую!!! :)

De-visible
17.04.2008, 22:08
Покажи как пытаешься передать файл, и если не "ПРИВАТНО :d" весь код отправки на ftp

hackconnect
17.04.2008, 22:31
http://athena.vvsu.ru/docs/tcpip/rfc/rfc959.txt
http://book.itep.ru/4/45/ftp_454.htm

Dr.KoD
17.04.2008, 22:45
Ну я сначало пытался, прочитать файл, записать в буфер прочтеное и потом это безобразие передать на ftp, но потом понял, что делаю не то, нужно еще как то название файла передать, а не просто данные пихнуть, ничего великого в коде нема
fName:='syslog.txt';
AssignFile(f, fName);
{$I-}
Reset(f);
{$I+}
while not EOF(f) do
begin
readln(f,buf);
//.....
sendbuff:=buf;
send(s, sendbuff[1], length(sendbuff),0);
Это я так сказать накатал, по памяти прям тут, т.к. ща у мну отрубали свет и часть моей работы ушла в небытие, но думаю этот код бред. :D
Еще есть функция на WinSock2 TransmitFile, она передает файл целиком, но пока я не въехал как ей пользоваться(примеров не нашел). Полазив по форумам пришел к заключению, что народ только пользуется индейцами и библиотекой WinInet, а про WinSock никто ниче не слышал и никто ниче незнает :( :mad: ,
Вот кстати кусочек кода, который отправляет файл на фтп с помощью WinInet, мож кому пригодится(а то я встречал подобный код только "размазанный" на "пару километров" :D а это так сказать "мини бикини" :D :
procedure Sendfile;
begin
InetHandle := InternetOpen(PChar('FTP'), 0, nil, nil, 0);
FtpHandle := InternetConnect(InetHandle, PChar('ftp.xxxxxx.ru'), 21, PChar('FTPLogin'),
PChar('FTP_Password'), INTERNET_SERVICE_FTP, 0, 255);
if not Assigned(FtpHandle) then
InternetCloseHandle(InetHandle)
else

try
FtpPutFile(FtpHandle, PChar('файл который хотим отправить'), PChar('имя файла на сервере'),
FTP_TRANSFER_TYPE_BINARY, 255);
except

end;

hackconnect
17.04.2008, 22:55
про WinSock никто ниче не слышал и никто ниче незнает
бред сивой кобылы - гугль/читай.

подобный код только "размазанный" на "пару километров"
просто он наверно был напичкан доп-функционалом.


и описание протокола почитай сначала, прежде чем его кодить

Dr.KoD
17.04.2008, 23:24
гугль/читай
ну ткни меня носом в тот форум где гугль показал, что там есть нормальный фтп клиент, написанный на WinSokAPI, кроме опять же изъежженного исходника из этой статьи "FTP клиент своими руками", ничего путевого и нету(ну по крайней мере я не нашел).

hackconnect
17.04.2008, 23:30
Dr.KoD
юзаешь вининет либо пишешь на сокетах сам. в чем проблема? или гугл 0дей инфу о протоколе скрыл? так вон я тебе скока ссылок дал. сиди-изучай.