Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 780
1

Indy http Скачать файл

27.12.2017, 17:57. Просмотров 393. Ответов 5
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if ARequestInfo.Document = '/' then
IdHTTPServer1.ServeFile(AThread, AResponseInfo, 'C:\1\server.cfg');
end;
Вот так открываю текстовый файл, как сделать что бы он скачивался браузером, а не открывался ???

Добавлено через 14 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  LocalDoc: String;
  ByteSent: Cardinal;
begin
  if ARequestInfo.Document = '/AF343BA23F' then
    LocalDoc := 'C:\File1.zip'
  else if ARequestInfo.Document = '/FBE323FBA2' then
    LocalDoc := 'C:\File2.zip'
  else if ARequestInfo.Document = '/CFADE12167' then
    LocalDoc := 'C:\File3.zip';
 
  if FileExists(LocalDoc) then
    ByteSent := IdHTTPServer1.ServeFile(AThread, AResponseInfo, LocalDoc);
end;
Пытался сделать так, но браузер тупо открывает архив (так как бы я открыл его текстовым редактором) но не предлагает сохранить его мне.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2017, 17:57
Ответы с готовыми решениями:

Indy http сервер
прив всем. Мне нужно чтобы при подключении к серверу веб-броузеру снимался и...

Indy, HTTP и зависание
Я пользуюсь комонентом Indy TIdHTTP для закачки файлов с предустановленого...

Где скачать Indy
мне бы нужно политру компонентов indy clients,indy servers и т.д где бы можно...

Indy прикрепить файл к письму
Добрый вечер) Товарищи, подскажите, как прикрепить аррхив к письму??? В инете...

Скачать файл
Добрый день! Ситуация такая. На сайте при вводе капчи и нажатии на кнопку в...

5
MyEternity
96 / 96 / 25
Регистрация: 25.04.2016
Сообщений: 525
28.12.2017, 12:08 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TMainClass.HTTPCommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  with AContext.Connection.Socket do
  //...
  if (ARequestInfo.URI = '/log')
    then
      begin
        AResponseInfo.ContentText:=ExtractFileName(MyFile);
        AResponseInfo.ServeFile(AContext, MyFile);
      end
  //...
0
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 780
28.12.2017, 17:00  [ТС] 3
я использу Indy 9, ваш код не пойдет... а можно пример под инди 9 ???
0
wwn41268
-1 / 14 / 2
Регистрация: 14.12.2017
Сообщений: 240
28.12.2017, 19:00 4
Тоже нужно скачать файл используя инди,дабы не плодить темы отпишу тут
мой код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.ButtonClick(Sender: TObject);
var
  memoryS: TMemoryStream;
  inet: TIdHTTP;
begin
  memoryS := TMemoryStream.Create;
  TIdHTTP.Create(nil);
  try
    inet.Get('http://localhost/export/?type=CSV', memoryS);
    memoryS.SaveToFile('C:\123.csv');
  finally
    inet.Free;
    Stream.Free;
  end;
end;
бьёт access violation

если в браузере захожу по http://localhost/export/?type=CSV начинается сразу скачиваться файл export.csv

Добавлено через 12 минут
Свою проблему решил,под вечер уже в глаза долблюсь
Цитата Сообщение от wwn41268 Посмотреть сообщение
Delphi
1
TIdHTTP.Create(nil);
конечно же меняем на
Delphi
1
inet := TIdHTTP.Create(nil);
1
Bookkc1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 780
28.12.2017, 21:56  [ТС] 5
wwn41268, то есть нажимаешь кнопку, и вводишь в браузере http://localhost/export/?type=CSV ? а если кинуть на ивент создания формы ? что б кнопку не нажимать
1
wwn41268
-1 / 14 / 2
Регистрация: 14.12.2017
Сообщений: 240
29.12.2017, 13:44 6
Bookkc1,
я ниже отписал как решил проблему

Добавлено через 44 минуты
А как сохранять файл с названием таким же как его отдаёт сервер?

Добавлено через 9 минут
Delphi
1
fn  := inet.Response.RawHeaders.Params['Content-Disposition', 'filename'];
Добавлено через 9 минут
только это обрещает строку,пытаюсь скачать файл "ivan petrov.csv"
сохраняется он как "ivan"
есть идеи ?

Добавлено через 2 часа 13 минут
в итоге вручную распарсил
1
29.12.2017, 13:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2017, 13:44

Проверка ссылки на файл - Http
Ситуация такая. Есть хост загрузки типа народа. Как сделать проверку ссылки -...

Скачать файл с RGHost.ru
Как мне в delphi XE8 скачать файл RgHost (или любой другой файловый обменник,...

Скачать файл с интернета
Немогу скачать файл с интернета этим кодом: var FS: TFileStream; begin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru