CUrl - узнать размер файла до открытия

tolyan

Новичок
CUrl - узнать размер файла до открытия

Ситуация такая:
использую CUrl в скрипте для доставки файлов по почте. Используется тьма возможностей CUrl при открытии: выставление реферрера, открывание файла по частям, еще чего-то там.. Все это с целью преодолеть всяческие защиты от скачивания и прочее.
Не могу найти такую штуку:
как узнать размер файла до его открытия? Если файл большой, то он открывается в цикле частями до тех пор, пока цикл не доберется до конца файла. Если большой файл открывать целиком - то он просто не влазит в оперативную память, доступную процессу. Единственный способ, который я пока вижу - это открывать частями в цикле, и считать сколько раз открыл =) Но это вовсе не по людски, да и траф лишний мотаться будет.
curl_getinfo() возвращает дельную инфу только после curl_init() а до этого галимые нули.
filesize просто не может добраться до многих файлов, которые может открыть CUrl
 

white phoenix

Новичок
tolyan
Дык полюбому память будет занята, ведь для отправки по почте нужно иметь в переменной весь файл.
 

tolyan

Новичок
C этим проблем нет - по частям открываем по частям отправляем.
Но как до процесса отправки узнать размер _ВСЕГО_файла? Чтобы не получить по почте вместо 7 метров 700, по незнанию.
А файлы размером в 100 метров скриптик отправляет на ура - проверено.
 

SiMM

Новичок
В общем случае - никак. Заголовок Content-Length в отклике сервера не является обязательным. В частном - при помощи HEAD-запроса. Как делать его в CURL и возможно ли вообще - смотри в документации.
 
Сверху