我正在尝试从远程网址获取图片的文件大小,我正在尝试这样:
$remoteUrl = $file->guid;
//remote url example: http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png
$fileSize = filesize($remoteUrl);
但是,我明白了:
filesize():stat失败了 http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png
答案 0 :(得分:5)
您可以使用HTTP标头查找对象的大小。 PHP函数prange
可以获取它们:
get_headers()
这样您就可以避免下载整个文件。您还可以访问所有其他标头,例如$headers = get_headers('http://myApp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png', true);
echo $headers['Content-Length'];
,如果您正在处理图像(documentation),这些标头可以派上用场。
答案 1 :(得分:0)
该错误通常表示提供的URL不会返回有效图像。当我尝试访问http://myapp/wp-content/uploads/2017/05/Screen-Shot-2017-05-08-at-10.35.54.png
时,它不会在我的浏览器中显示图像。仔细检查$file->guid;
返回的网址是否正确。
答案 2 :(得分:0)
您需要尝试其他方法,http:// stream wrapper不支持filesize()功能所需的stat()
。
This question有一些您可以使用的选项,使用curl
发出HEAD
请求并检查Content-Length
标题。