Php - 使用网址获取文件大小

时间:2017-06-21 11:53:13

标签: php laravel

我正在尝试从远程网址获取图片的文件大小,我正在尝试这样:

$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

3 个答案:

答案 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标题。