3

假设我们有一个图像文件,存储在远程服务器中(例如,让我们拍摄这张图像),我们如何确定(在 PHP 代码中)它的文件大小?

如果文件在服务器上,我们将使用文件大小(请参阅此处),但这不适用于远程文件(请参阅此处)。

另一种选择是检查“内容长度”,但我相信它不适用于图像文件(见这里

我想要一个像这里给出的解决方案(例如,类似:

<?php
function get_remote_size($url) {  // magic
}
echo get_remote_size("http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg");
?>

但无需下载图像。那可能吗?

4

3 回答 3

8

假设您担心文件的大小(而不是图像的尺寸),您可以获取 Content-Length 并且它通常会起作用。

如果另一端的服务器不提供标头,您将别无选择,只能获取文件,并在本地检查其大小。

<?PHP
$headers = get_headers('http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg');
$size = null;
foreach($headers as $h){
    /** look for Content-Length, and stick it in $size **/
}
if ($size === null){ //we didn't get a Content-Length header
    /** Grab file to local disk and use filesize() to set $size **/
}

echo "image is $size bytes";
于 2010-10-08T22:15:53.390 回答
1

echo get_headers($url,1)['Content-Length'];

于 2013-04-24T06:59:25.947 回答
0

其他人有一个基本上作为套接字连接的功能: http: //snippets.dzone.com/posts/show/1207

于 2010-10-08T22:09:43.260 回答