Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вопрос по Delphi скачать файл по HTTP (https://forum.antichat.xyz/showthread.php?t=185851)

lolec69 11.03.2010 15:45

Вопрос по Delphi скачать файл по HTTP
 
Как скачать файл по HTTP

GhostOnline 11.03.2010 21:01

Что то типа:
Код:

var       
  stream : TMemoryStream;       
  http : TIdHTTP;
begin       
 http := TIdHTTP.Create;       
 stream := TMemoryStream.Create;       
 try               
    http.get('somesite.com/somefile', stream);
    stream.SaveToFile('MyFile');       
finally               
    FreeAndNil(http);               
    FreeAndNil(stream);       
end;
end;

ЗЫ По моему самый часто задаваемый вопрос

RedFern.89 11.03.2010 21:12

Код:

var
  HTTP : TidHTTP;
  Strm : TMemoryStream;
 begin
  Http := TIdHTTP.Create(nil);
  strm := TMemoryStream.Create;
 
  HTTP.Request.CustomHeaders.Add('Range: bytes=0-12954');
  HTTP.Get('http://vk.com/u21312312/audio/ff75373434gf4.mp3', strm);
 
  strm.SaveToFile
  strm.free;
  http.free;

так ты закачаешь по диапозону... можешь юзать для докачки или для закачки файла по частям... главное юзай АСИнхронную передачу))
end;

M_script_ 11.03.2010 22:03

Цитата:

Сообщение от RedFern.89
главное юзай АСИнхронную передачу))

Асинхронная передача через TIdHTTP :confused:
это как?

zeppe1in 11.03.2010 23:08

Код:

uses urlmon;

URLDownloadToFile (nil,'https://forum.antichat.ru/thread185851.html','C:/yo.html', 0, nil);


RedFern.89 12.03.2010 01:47

Запихай в поток:) а то при загрузке будет интерфейс виснуть:) особенно при загрузке жирных файлов:)

buket 18.04.2010 20:30

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

RedFern.89 18.04.2010 20:31

используй URLEncode)))

Jingo Bo 18.04.2010 21:16

Почему все используют TMemoryStream?))
Не проще так
Код:

var       
  stream : TFileStream;       
  http : TIdHTTP;
begin       
 http := TIdHTTP.Create;       
 stream := TFileStream.Create('C:/sffsf.dat', fmCreate);       
 try               
    http.get('somesite.com/somefile', stream);
finally               
    FreeAndNil(http);               
    FreeAndNil(stream);       
end;

Не будет тратиться время на сохранение из TMemoryStream на диск.

M_script_ 18.04.2010 21:35

Цитата:

Сообщение от Jingo Bo
Не будет тратиться время на сохранение из TMemoryStream на диск.

И много времени сэкономишь?


Время: 19:51