Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Upload файлы по ХТТП протоколу [D3, Win95/98]


Saint_Byte ©   (2004-10-29 13:01:00) 

Прошу помощи, как мне это реализовать , может кто знает под это дело специальный компонент ?

Дайте хоть линку , линки найденые яндексом я читал (не дурак)!!!

да и заметьте какой у меня софт


Reindeer Moss Eater   (2004-10-31 14:12:00) [1]

И что?
*.pas файлы вдруг стали несовместимы с блокнотом или редактором IDE?


Saint_Byte   (2004-10-29 19:45:00) [2]

Ключевое слово тут UPLOAD , тобишь загрузка на сервер !!!
На торри нет был  компанетов не нашел .

А вот инди оно вроде только под новые делфы . А  меня 3ая =(((


hooch   (2004-10-29 14:08:00) [3]

в Indy вроди заморочки есть с работой через прокси, пробовать не стал, сделал так


hooch   (2004-10-29 14:05:00) [4]

я так качал

  // инициализация WinInet
  ShowStatus('Инициализация...');
  hInet := InternetOpen(PAnsiChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if hInet <> nil then
    try
      // открытие сессии
      ShowStatus('Соединение...');
      hConnect := InternetConnect(hInet, PChar(Url), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
      if hConnect <> nil then
        try
          // открытие запроса
          hRequest := HttpOpenRequest(hConnect, PChar('POST'), PChar(ObjectName), nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
          if hRequest <> nil then
            try
              ShowStatus('Отправка запроса...');
              if HttpSendRequest(hRequest, PChar(Header), Length(Header), PChar(Query), Length(Query)) then
                begin
                  dwIndex := 0;
                  dwBufferLen := 1024;
                  GetMem(Buffer, dwBufferLen);
                  try
                    // запрос размера файла
                    if HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, Buffer, dwBufferLen, dwIndex) then
                      begin
                        Size := StrToInt(StrPas(Buffer));

                        // чтение файла
                        ShowStatus('Загрузка данных...');
                        while true do
                          begin
                            if InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) and (BytesToRead > 0) then
                              AStream.Write(Data[0], BytesToRead)
                            else
                              Break;
                            ShowProgress(0, Size, AStream.Size);
                          end;

                        // проверка размера скаченого файла
                        if Size <> AStream.Size then
                          raise Exception.Create('Ошибочный размер файла')
                        else
                          ShowProgress(0, Size, AStream.Size);
                      end
                    else
                      raise Exception.Create('Ошибка получения размера файла')
                  finally
                    FreeMem(Buffer, dwBufferLen);
                  end;
                end
              else
                RaiseLastOSError;
            finally
              InternetCloseHandle(hRequest);
            end;
        finally
          InternetCloseHandle(hConnect);
        end
      else
        RaiseLastOSError;
    finally
      InternetCloseHandle(hInet);
    end
  else
    RaiseLastOSError;


Карелин Артем   (2004-10-29 13:58:00) [5]

Torry.net Гы-Гы


Reindeer Moss Eater   (2004-10-29 13:08:00) [6]

www.nevrona.com/indy


Наверх

Титульная страница Поиск, карта сайта Написать письмо