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

Передача сканированных файлов из приложения Delphi Desktop на сервер UnigUI для архивации

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

Вопрос передачи файлов между клиентским приложением на Delphi Desktop и сервером на Delphi UnigUI является актуальным для разработчиков, работающих с документооборотом. В контексте обсуждения на форуме было предложено несколько вариантов решения этой задачи, в том числе использование сторонних сервисов для синхронизации файлов, настройка FTP/SFTP сервера, HTTP-POST сообщений и создание собственной системы обмена сообщениями. Однако, в данном случае, обсуждается реализация передачи файлов напрямую через HTTP-POST, что является предпочтительным решением для мазлуты, учитывая, что сервер UnigUI постоянно работает.

Решение через HTTP-POST

Пример кода для клиентского приложения на Delphi Desktop, использующего TIdHTTP для отправки файла на сервер:

var
  HTTP: TIdHTTP;
  FormData: TIdMultipartFormDataStream;
  URL: string;
  FilePath: string;
  ResultInt: Int64;
begin
  Try
    HTTP := TIdHTTP.Create(nil);
    FormData := TIdMultipartFormDataStream.Create;
    try
      FilePath := 'c:aM1.pdf';
      URL := PrmUrlAddress + ':' + IntToStr(PrmUrlPort) + '/Indexing';
      ResultInt := GetUniqueNumber;
      FormData.AddFile('file', FilePath, 'application/octet-stream');
      FormData.AddFormField('UniqueName', IntToStr(ResultInt));
      HTTP.Post(URL, FormData);
      ShowMessage('File uploaded successfully - Status Code = ' + IntToStr(HTTP.ResponseCode));
      ShowMessage('Response Text = ' + HTTP.ResponseText);
    except
      on E: Exception do
        ShowMessage('Failed to upload file: ' + E.Message);
    end;
  Finally
    FormData.Free;
    HTTP.Free;
  End;
end;

Код для обработки запроса на стороне сервера UnigUI:

var
  FileStream: TFileStream;
  SavePath: string;
  FileFirstName: String;
begin
  if ARequestInfo.URI = '/Indexing' then
  begin
    FileFirstName := The Extra PARAM Field // Получение уникального имени файла из параметров запроса
    SavePath := 'C:a' + FileFirstName + '.pdf';
    FileStream := TFileStream.Create(SavePath, fmCreate);
    try
      // Копирование входящих данных в поток файла
      FileStream.CopyFrom(ARequestInfo.PostStream, ARequestInfo.PostStream.Size);
    finally
      FileStream.Free;
    end;
    AResponseInfo.ResponseText := 'File Saved OK';
    Handled := True;
  end;
end;

После успешной загрузки файла на сервер, клиентское приложение может отправить дополнительный запрос с уникальным номером для начала процесса индексации.

Альтернативное решение

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

Заключение

Выбранный метод HTTP-POST является эффективным решением для передачи файлов между клиентом и сервером, особенно учитывая, что объем передаваемых данных невелик (10-50 файлов в день от 5 пользователей). Это решение не требует дополнительных внешних сервисов и легко интегрируется с существующей инфраструктурой. Для обеспечения безопасности можно использовать HTTPS и добавить систему аутентификации.

Создано по материалам из источника по ссылке.

Разработчики обсуждают различные методы передачи файлов между клиентским приложением на Delphi Desktop и сервером на Delphi UnigUI, с акцентом на использование HTTP-POST для обмена файлами напрямую через интернет.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 10:56:02/0.0036170482635498/0