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

Вниз

Как по http узнать размер файла??   Найти похожие ветки 

 
BorH   (2003-08-17 04:16) [0]

(продолжение темы " Скачивание файла по HTTP")
Тэкс, прогу я сделал, на ней два ПрогрессБара, один показывает общий прогресс, а второй не пашет, потому как я незнаю как определять размер файла. Желательно с помощью WinInet.


 
BorH   (2003-08-17 04:24) [1]

Я полагаю, надыть спросить сервака о размере...
Вот лог ФлешГета:

Sun Aug 17 02:59:45 2003


 
Palladin   (2003-08-18 00:44) [2]

Вряд ли твоя задача требует идеи.
RTFM
а конкретно
http://helper10.narod.ru/ac0.htm
RFC HTTP
смотри метод HEAD...
+ использование TClientSocket


 
Palladin   (2003-08-18 00:53) [3]

Учти только, сервер не обязан тебе возвращать размер ресурса...


 
Дмитрий В. Белькевич   (2003-08-18 01:49) [4]

InternetQueryDataAvailable takes the HINTERNET handle created by InternetOpenUrl, FtpOpenFile, GopherOpenFile, or HttpOpenRequest (after HttpSendRequest has been called on the handle) and returns the number of bytes available. The application should allocate a buffer equal to the number of bytes available +1 for the NULL terminator, and use that buffer with InternetReadFile. This method does not always work because InternetQueryDataAvailable is checking the file size listed in the header and not the actual file. The information in the header file could be outdated or the header file could be missing, since it is not currently required under all standards.

По-моему в описанке WinInet достаточно ясно написано.


 
gedd   (2003-08-18 11:57) [5]

А ты как через прокси проходить будешь?


 
BorH   (2003-08-18 12:24) [6]

2 gedd ©
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

hURL := InternetOpenURL(hSession,PChar(fileURL),nil,0,0,0);


Насколько я разобрался, INTERNET_OPEN_TYPE_PRECONFIG указывает брать прокси из реестра.

Полазь по исходникам WinInet. Будет больше ясно.

2 Дмитрий В. Белькевич ©Спасибо конечно, но где ты достал инфу но WinInet? В справке Делфей нет...


 
BorH   (2003-08-19 00:30) [7]

2 Дмитрий В. Белькевич © Ясно. Понял. :-))
2 All Всё хорошо, но вот только InternetQueryDataAvailable не пашет, вернее пашет, но возвращает вместо размера то 655 то 656... Вот код, который я использую:


var
hSession, hURL: HInternet;

dwFlags, dwContext: DWORD;
begin

hSession := InternetOpen("Mozilla/4.0",
INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

//не думаю, чтоб ошибка была из-за непонравившегося серваку агента

hURL := InternetOpenURL(hSession,PChar(fileURL),nil,0,0,0);

InternetQueryDataAvailable(hURL,dwordFileSize, {!!!!}
0,0); {!!!!}



а потом в цикле чтение
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen)
и запись в файл...

Обидно, всё пашет, а это - нет!!!

Люди, ПЛИЗ ПОМОГИТЕ!!! время поджимает :-((


 
Дмитрий В. Белькевич   (2003-08-19 01:32) [8]

Для BorH: ищи доки на сайте господина Анатолия Подгородецкого http://www.podgoretsky.com. Там по wininet есть замечательная документация.



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

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

Наверх





Память: 0.46 MB
Время: 0.009 c
1-51314
афвуд
2003-10-04 17:37
2003.10.16
Не срабатывает обработчик


3-51099
domenicas
2003-09-25 15:16
2003.10.16
SQL Server 2000 ???


8-51356
Charly
2003-06-16 15:48
2003.10.16
TBitMap и буфер обмена


6-51377
Blondin
2003-08-19 14:21
2003.10.16
idPOP3 - Coding table entry not found


14-51469
Knight
2003-09-27 22:21
2003.10.16
Безопастность в PHP...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский