|
Тема |
Re: големина на файл през URL [re: Viper X] |
|
Автор |
Mopдpeд (seeker) |
|
Публикувано | 05.08.05 15:14 |
|
|
В общия случай нема как да стане.
В частния, може и да имаш късмет ;)
Има пет, не, седем признака дали хттп сервера е свършил да ти праща тяло на отговора си, само два от тях касаят колко байта (различно от нула) се очаква да минат по мрежата, и само един от тези два механизма знае това предварително, споменатия от тебе Content-Length.
---------------
Отметка:
Сигурен ли си, че не можеш да минеш с файл ъплоад?
1) Ограничаваш размера в ХТМЛ-а, имаше там нещо дето се пише в тага, не го знам наизуст
2) Ограничаваш размера от страна на сървъра с настройка на пхп-то
3) Проверяваш размера след като се е свалил файла ($_FILES['userfile']['size']). Това го правим, щото обикновено искаме по-тесни ограничения от глобалното ограничение за размер на качен файл. Ограничението в 2) те пази от мега-големи ъплоади, разлика от няколко Мб ги поема 3)
Виж в ръководството Chapter 3. Handling file uploads
------------
Ако не можеш да минеш с файл ъплоад и не обработваш файлове от известен ти сървър, пак казвам, че няма как. Механизмът с цонтент-ленгтх се използва само при трансфер на статични файлове, без компресия. Можеш разбира се да пробваш дали сървъра връща цонтент-ленгтх, и ако не връща, просто да откажеш да обработваш файла.
Колкото до това КАК да вземеш хедър от отговора - не знам, аз го правя ръчно (пиша, т.е. писах, библиотека за ХТТП - палиш сокет, пускаш рекуест, чекаш респонс). Не съм сигурен дали съществуващите алтернативи - разните там цурл и т.н. дават такъв тип контрол.
Имаш два варианта - HEAD рекуест, но после в зависимост от сървъра може да се наложи да палиш втори сокет, или направо GET рекуест и ако не те кефи нещо, гасиш сокета и си легаш ;)
За какво ти е тва нещо и колко е сериозно? Да го подкараш да работи съвместимо с ХТТП 1.0 и 1.1 е немалка играчка, ако е некой дребен проект, по-добре мисли за алтернативи :)
Портал за почитателите на Толкин - връзки и новини
|
| |
|
|
|