Передача файла CGI скрипту на север с помощью Delphi
От: Grektomsk  
Дата: 05.03.04 19:21
Оценка:
Помогите мне ктонибудь!!!!!!!
Нужно передать фаил CGI скрипту ( отвечает за загрузку файлов на сервер), который находится на сервере. Как через Веб форму
И нужно это сделать програмно посредством Delphi, спомощью компоненты MNHTTP1.Post.
Желательно показать примером, или исходником.
Ну очень надо!!!!!!!
Re: Передача файла CGI скрипту на север с помощью Delphi
От: Виталий Россия  
Дата: 05.03.04 23:05
Оценка: 6 (1)
Здравствуйте, Grektomsk, Вы писали:


G>Помогите мне ктонибудь!!!!!!!

G>Нужно передать фаил CGI скрипту ( отвечает за загрузку файлов на сервер), который находится на сервере. Как через Веб форму
G>И нужно это сделать програмно посредством Delphi, спомощью компоненты MNHTTP1.Post.
G>Желательно показать примером, или исходником.
Вот выдрал из своих сырцов, кое-что не относящееся к сабжу поделил, но думаю идея понятна. Правда не MNHTTP1, а WinInet, но на компонентах мир клином не сошелся

procedure TSysInfo.Send;
var
    hInet, hConnection, hRequest: HINTERNET;
    report : array of char;
begin
    hInet := InternetOpen('SysInfo reporter',INTERNET_OPEN_TYPE_PRECONFIG,nil, nil,0);
    if (hInet <> nil) then
        begin
            hConnection := InternetConnect(hInet,PChar(FServer),
                INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,1);
            if hConnection <> nil then
                begin
                    hRequest := HttpOpenRequest(hConnection,'POST',
                        nil,nil,nil,nil,INTERNET_FLAG_KEEP_CONNECTION,1);
                    if hRequest<>nil then
                        begin
                            SetLength(report,len);
                            // заносим нужную информацию в report

                            if not HttpSendRequest(hRequest,'Content-Type: application/x-www-form-urlencoded',48,report,len) then
                                RaiseLastOSError;
                            InternetCloseHandle(hRequest);
                        end;
                    InternetCloseHandle(hConnection)
                end
            else
                RaiseLastOSError;
            InternetCloseHandle(hInet);
        end
    else
        RaiseLastOSError;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.