检查外部文件大小,PHP

3
我用以下代码通过URL获取文件:
```python ```
file_get_contents($_POST['url'];

然后我对它们进行一些操作。

但是我不想处理大文件,如何限制接收文件的大小?

如果文件超过500kb,应该抛出一个错误。

2个回答

8
请看我的回答。您需要使用cURL扩展,通过它可以向远程服务器发送HEAD HTTP请求,响应会告诉您文件的大小,然后您可以做出相应的决定。
您特别关注这一行:
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

curl_setopt($ch, CURLOPT_URL, $url),$url = post['url']? - James
@Rooney:是的,那是你感兴趣的URL的占位符。 - Jon

5

同意@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);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接