如何获取远程映像文件大小


how do i get remote image filesize?

我正在尝试获取远程映像文件的大小。

但我得到了这个错误:"警告:的filesize():stat失败http://mfastore.com/_store/user_data/9fc8022_310/C/hydrangeas.jpg未知文件大小"

这是我试图在MB 中获得图像大小的代码

    $res= formatFilebytes("http://mfastore.com/_store/user_data/9fc8022_310/C/hydrangeas.jpg","MB");
echo $res;
function formatFilebytes($file, $type)
{
switch($type){
case "KB":
$filesize = filesize($file) * .0009765625; // bytes to KB
break;
case "MB":
$filesize = (filesize($file) * .0009765625) * .0009765625; // bytes to MB
break;
case "GB":
$filesize = ((filesize($file) * .0009765625) * .0009765625) * .0009765625; // bytes to GB
break;
}
if($filesize <= 0){
return $filesize = 'unknown file size';}
else{return round($filesize, 2).' '.$type;}
}

请帮帮我。感谢

试试这个

$image_header = get_headers("http://mfastore.com/_store/user_data/9fc8022_310/C/hydrangeas.jpg", true);
$size = $image_header["Content-Length"];

这是适用于我的解决方案…

 $url = 'http://mfastore.com/_store/user_data/9fc8022_310/C/hydrangeas.jpg';
echo getRemoteFilesize($url);
function getRemoteFilesize($url, $formatSize = true)
{
    $head = array_change_key_case(get_headers($url, 1));
    // content-length of download (in bytes), read from Content-Length: field
    $clen = isset($head['content-length']) ? $head['content-length'] : 0;
    // cannot retrieve file size, return "-1"
    if (!$clen) {
        return -1;
    }
    if (!$formatSize) {
        return $clen; // return size in bytes
    }
    $size = $clen;
    switch ($clen) {
        case $clen < 1024:
            $size = $clen .' B'; break;
        case $clen < 1048576:
            $size = round($clen / 1024, 2) .' KiB'; break;
        case $clen < 1073741824:
            $size = round($clen / 1048576, 2) . ' MiB'; break;
        case $clen < 1099511627776:
            $size = round($clen / 1073741824, 2) . ' GiB'; break;
    }
    return $size; // return formatted size
}

我相信这会对你有所帮助,这是一个例子:

$filesize = filesize($folder_url . $file) * .0009765625; // bytes to KB