|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Как скачать большие файлы ? |
|
Delphi - [решено] Как скачать большие файлы ?
|
Ветеран Сообщения: 1158 |
День добрый! Нужно скачать файл большого размера , от 2 и более гб ! Перепробовал много вариантов из интернета и не один не работает .
Вот пример uses Wininet function GetInetFile(const fileURL, FileName: String; Progress: TProgressBar): boolean; const BufferSize = 1024; var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; DataSize,BufferLen: DWORD; Stream:TMemoryStream; begin Result:=False; hSession := InternetOpen(PChar(ExtractFileName(Application.ExeName)), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL),nil,0,0,0); try DataSize:= 0; BufferLen:= sizeof(DataSize); if HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER, @DataSize,BufferLen,PDWORD(nil)^) then begin Progress.Max:=DataSize; Progress.Position:=Progress.Min; end; Stream:=TMemoryStream.Create; try repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); Stream.WriteBuffer(Buffer, BufferLen); Progress.StepBy(BufferLen); Application.ProcessMessages; until BufferLen = 0; Stream.SaveToFile(FileName); Result:=True; finally Stream.Free; end; finally InternetCloseHandle(hURL); Progress.Position:= SizeOf(Buffer); end; finally InternetCloseHandle(hSession); end; end; procedure TForm1.Button1Click(Sender: TObject); begin if GetInetFile('http://a0555996.xsph.ru/activation/ru_windows_7_ultimate_with_sp1_x64_dvd_u_677391.iso', 'H:\ru_windows_7_ultimate_with_sp1_x64_dvd_u_677391.iso', ProgressBar1) then ShowMessage('Скачка завершена'); end; end. Помогите примером, кто ? |
|
------- Отправлено: 15:45, 30-06-2021 |
Ветеран Сообщения: 1158
|
Профиль | Отправить PM | Цитировать Вопрос закрыт! Задачу решил как всегда сам
|
------- Отправлено: 21:53, 30-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4465
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 16:05, 05-07-2021 | #3 |
Ветеран Сообщения: 4969
|
Профиль | Отправить PM | Цитировать DataSize и BufferLen надо было объявить int64.
А вообще если iso не знаю, но на exe (например, самораспаковывающийся архив) антивирус будет орать trojan-downloader. |
Отправлено: 03:16, 11-08-2021 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как скачать файлы с mega.nz ? | MKN | Хочу все знать | 1 | 13-07-2016 13:54 | |
V. 5.5/2000/2003 - не отсылает большие файлы | skif99 | Microsoft Exchange Server | 8 | 13-04-2011 10:41 | |
Постоянно битые большие файлы. | Fantazy ZZZ | Непонятные проблемы с Железом | 24 | 07-11-2008 15:21 | |
Интернет - через мобилу. Как качать большие файлы? | Дядюшка Ляо | Хочу все знать | 21 | 15-09-2008 09:05 | |
Разное - Большие файлы копируються с ошибками | ne_znam | Накопители (SSD, HDD, USB Flash) | 2 | 24-04-2008 15:29 |
|