Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Как скачать файл из интернета по HTTP?   Найти похожие ветки 

 
Alaman   (2004-08-23 23:17) [0]

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

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

Нашел в интернете два способа:

Первый способ:
function GetInetFile(const fileURL, FileName: string): boolean;
const
 BufferSize = 1024;
var
 hSession, hURL: HInternet;
 Buffer: array[1..BufferSize] of Byte;
 BufferLen: DWORD;
 f: file;
 sAppName: string;
begin
 Result := False;
 sAppName := ExtractFileName(Application.ExeName);
 hSession := InternetOpen(PChar(sAppName),
 INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 try
   hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
   try
     AssignFile(f, FileName);
     Rewrite(f,1);
     repeat
       InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
       BlockWrite(f, Buffer, BufferLen);
     until
       BufferLen = 0;
     CloseFile(f);
     Result := True;
   finally
     InternetCloseHandle(hURL);
   end;
 finally
   InternetCloseHandle(hSession);
 end;
end;

Эта функция возвращает true даже в том случае если связь прервалась посреди закачки.
Как мне узнать весь файл закачался или не весь?

Второй способ:

uses
 ...URLMon;

...
if UrlDownloadToFile(nil, PChar(DTfileURL), PChar(DTFileName), 0, nil)= 0
   then
     Memo1.lines.append("загрузка завершилась успешно")
   else
     Memo1.lines.append("Ошибка загрузки");
Этот метод кажется проще и возвращает false если файл не докачался.
Однако первый способ я встретил в десятке статей, тогда как второй только
в одной и то наряду с первым. Может у второго способа есть какие то подводные камни?
Каким же способом воспользоваться? и есть ли еше способы?


 
Kostik   (2004-08-25 22:14) [1]

Блин даже не знаю чем помочь.


 
Woolen ©   (2004-08-30 15:49) [2]

Есть и еще. Не знаю, через что он работает, но в Delphi есть стандартный Action для подобных вещей: TDownloadURL. Проверь через что он работает, может будет тебе полезен.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
4-1095749888
secret
2004-09-21 10:58
2004.11.07
Как в “Delphi 6” поменять шрифт, в котором выводится надпись на з


4-1096612217
Rem
2004-10-01 10:30
2004.11.07
Координаты эдита


14-1098274091
Drakosha
2004-10-20 16:08
2004.11.07
.NET


11-1082533876
Image
2004-04-21 11:51
2004.11.07
Проблема с UpDownControl


6-1093690901
Turbid
2004-08-28 15:01
2004.11.07
Head-запрос к web-странице





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский