2
リモートサーバー上のイメージのファイルサイズはどのようにして調べることができますか?ローカルマシンではfilesize()
を使うことができますが、イメージをダウンロードせずにサイズを見つけたいと思っています。PHPを使用したリモートイメージファイルサイズの計算
リモートサーバー上のイメージのファイルサイズはどのようにして調べることができますか?ローカルマシンではfilesize()
を使うことができますが、イメージをダウンロードせずにサイズを見つけたいと思っています。PHPを使用したリモートイメージファイルサイズの計算
getimagesize(url)を使用してください。ただし、画像がダウンロードされます。イメージをダウンロードすることなくサイズを決定する方法はありません。
// Similar solution seen in another stackoverflow post:
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = get_headers($source_file,1);
$source_file_size = null;
if (is_array($headers) && array_key_exists('Content-Length',$headers)) {
$source_file_size = intval($headers['Content-Length']);
}
if ($source_file_size === null){ //we didn't get a Content-Length header
/** Grab file to local disk and use filesize() to set $size **/
}
stream_context_set_default(
array(
'http' => array(
'method' => 'GET'
)
)
);