Проверка размера внешних файлов, php


Я получаю файлы по их URL-адресам с помощью этого кода

file_get_contents($_POST['url'];
Затем я что-то делаю с ними.

Но я не хочу работать с большими файлами, как я могу ограничить размер полученного файла?

Он должен выдать ошибку, если файл больше 500 Кб.

2 3

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);
    }