Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как отправить файл на сервер по HTTP?

Delphi , Интернет и Сети , Интернет

{ =============================================================================
  отправить файл
  =============================================================================}
function SendFile (aRequest, aFilename : string): string;
var lFormData   : TIdMultiPartFormDataStream;
    lResponce : string;

         HTTPRequest: TIdHTTP;
begin
  if UseProxy then
    begin
      HTTPRequest.ProxyParams.ProxyServer:=ProxyServer;
      HTTPRequest.ProxyParams.ProxyPort:= StrToInt( ProxyPort );
      HTTPRequest.ProxyParams.BasicAuthentication:=ProxyAuth;
      HTTPRequest.ProxyParams.ProxyUsername:=ProxyName;
      HTTPRequest.ProxyParams.ProxyPassword:=ProxyPass;
    end
  else HTTPRequest.ProxyParams.Clear;

  if trim(aRequest)='' then exit;

  lFormData := TIdMultiPartFormDataStream.Create;
  lFormData.AddFile('File',aFilename,'application/octet-stream');
  lFormData.AddFormField('rq', aRequest);
  lFormData.AddFormField('EmptyField', '');

  {$IFDEF DEBUG}
  Writeln(#13#10 + 'Request: ' +#13#10+ aRequest);
  Writeln(' Send file :' + aFilename);
  {$ENDIF}

  try
    lResponce := HTTPRequest.Post('http://'+server, lFormData);
  except
    ShowMessage('
Server Connection error!');
   
lResponce := '';
  end;

  lFormData.Free;
  {$IFDEF DEBUG}
  Writeln(#13#10 + 'Responce: ' + #13#10 + lResponce);
  {$ENDIF}

  Result:= lResponce;
end;
//=============================================================================

kan

Функция SendFile в Delphi, которая отправляет файл на сервер с помощью HTTP. Вот подробный анализ кода:

  1. Функция принимает два параметра входа: aRequest (строка) и aFilename (также строка).
  2. Создается экземпляр компонента TIdHTTP, который используется для отправки запросов HTTP.
  3. Если настроен прокси-сервер, функция настраивает параметры прокси на объекте TIdHTTP.
  4. Функция проверяет, является ли строка запроса пустой, и если да, то выходит из программы сразу.
  5. Создается экземпляр класса TIdMultiPartFormDataStream, который используется для отправки данных формата в запросе HTTP (в этом случае файл).
  6. Функция добавляет файл к отправке как бинарное поле с именем "File" и типом содержимого "application/octet-stream".
  7. Также функция добавляет два текстовых поля: одно с именем "rq" со значением aRequest, а другое с именем "EmptyField" с пустым значением.
  8. В режиме отладки функция выводит диагностическую информацию в консоль, включая строку запроса и имя файла.
  9. Функция отправляет POST-запрос на указанный URL-сервер (http:// + server) с помощью объекта TIdHTTP, передавая поток данных формата как тело запроса.
  10. Если возникает ошибка при отправке запроса (например, из-за таймаута соединения или невалидной ответа сервера), функция отображает сообщение об ошибке и возвращает пустую строку.
  11. Наконец, функция освобождает поток данных формата и возвращает ответ сервера как строку.

Для использования этой функции вы бы вызвали ее с именем файла и строкой запроса в качестве аргументов, например:

var
  resp: string;
begin
  resp := SendFile('POST /path/to/endpoint HTTP/1.1', 'file.txt');
  // Делайте что-то с ответом
end.

Обратите внимание, что этот код является специфичным для Delphi и может не работать в других языках программирования или средах без изменений.

Функция SendFile в Delphi позволяет отправить файл на сервер по протоколу HTTP, используя класс TIdHTTP и объект TIdMultiPartFormDataStream.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Интернет ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-08-11 18:31:28/0.0081319808959961/1