Проверка размера внешних файлов, php
Я получаю файлы по их URL-адресам с помощью этого кода
file_get_contents($_POST['url'];
Затем я что-то делаю с ними.
Но я не хочу работать с большими файлами, как я могу ограничить размер полученного файла?
Он должен выдать ошибку, если файл больше 500 Кб.
2 ответа:
Смотрите мойОтвет на этот вопрос. Вам нужно иметь расширение cURL, с помощью которого вы можете сделать запрос
HEAD
HTTP к удаленному серверу. Ответ даст вам знать, насколько велик файл, и вы сможете принять соответствующее решение.Вас интересует именно эта строка:
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
Согласен с @Jon
$ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); //specify the url curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($ch); $size = curl_getinfo($ch,CURLINFO_CONTENT_LENGTH_DOWNLOAD); if(<limit the $size>){ file_get_contents($url); }