|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Размер файла перед скачиванием
Привет
В FAQ есть код Код:
GetUrlInfo(HTTP_QUERY_CONTENT_LENGTH, 'http://some.com/some.zip'); function GetUrlInfo(const dwInfoLevel: DWORD; const FileURL: string): string; var hSession, hFile: hInternet; dwBuffer: Pointer; dwBufferLen, dwIndex: DWORD; begin Result := ''; hSession := InternetOpen('STEROID Download', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if Assigned(hSession) then begin hFile := InternetOpenURL(hSession, PChar(FileURL), nil, 0, INTERNET_FLAG_RELOAD, 0); dwIndex := 0; dwBufferLen := 20; if HttpQueryInfo(hFile, dwInfoLevel, @dwBuffer, dwBufferLen, dwIndex) then Result := PChar(@dwBuffer); if Assigned(hFile) then InternetCloseHandle(hFile); InternetCloseHandle(hsession); end; end; Код возвращает результат в виде , например Код:
4823- Как узнать полный объем файла перед скачиванием в байтах ? Спасибо |
#2
|
||||
|
||||
Используй FtpGetFileSize через Windows Internet API. Пропиши в uses - wininet.
Программирование - это искусство и наш смысл жизни. |
#3
|
|||
|
|||
нашел решение
Код:
function GetHttpFileSize(const URL:string):Int64; var hSession,hRequest:Pointer; lpBuf:array[0..30] of Char; dwBufLen:DWORD; begin hSession:=InternetOpen(nil,INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0); hRequest:=InternetOpenUrl(hSession,PChar(URL),nil,0,0,0); dwBufLen:=SizeOf(lpBuf); if not HttpQueryInfo(hRequest,HTTP_QUERY_CONTENT_LENGTH,@lpBuf,dwBufLen,PDWORD(nil)^) then Result:=-1 else Result:=StrToInt64Def(lpBuf,-1); InternetCloseHandle(hRequest); InternetCloseHandle(hSession); end; |