Проверьте размер внешних файлов, php - PullRequest
3 голосов
/ 27 марта 2011

Я получаю файлы по их URL по этому коду

file_get_contents($_POST['url'];

Затем я что-то с ними делаю.

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

Должно выдаваться сообщение об ошибке, если размер файла превышает 500 КБ.

Ответы [ 2 ]

8 голосов
/ 27 марта 2011

См. Мой ответ на этот вопрос. Вам нужно иметь расширение cURL, с помощью которого вы можете сделать HTTP-запрос HEAD к удаленному серверу. Ответ даст вам знать, насколько большой файл, и вы сможете принять соответствующее решение.

Вы заинтересованы именно в этой строке:

$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
3 голосов
/ 27 марта 2011

Согласен с @ 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);
    }
...