7

我一直在用谷歌搜索,但我得到的只是 getimagesize 和 filesize。
getimagesize 获取 KB 大小只是宽度和高度,这不是我想要的。
filesize 给我消息警告:filesize() [function.filesize]: stat failed for
the file is 51kb .jpg file

$imgsize=filesize("http://localhost/projects/site/schwe/user/1/1.jpg");

不工作,

我该如何做到这一点?

4

6 回答 6

7

您无法获取远程元素的文件大小,要么在系统上提供相对路径,要么file_get_contents()先获取内容。因此,而不是 http:// ,做一个filesize('/path/to/local/system'). 确保它可以被 php 进程读取

于 2010-09-27T15:23:42.883 回答
5

您无法像这样查找远程文件的文件大小。它用于查看本地文件的文件大小。

例如...

$imgsize = filesize( '/home/projects/site/1.jpg' );
于 2010-09-27T15:23:59.527 回答
1

或者您也可以执行以下操作:

$header = get_headers($url);
foreach ($header as $head) {
    if (preg_match('/Content-Length: /', $head)) {
        $size = substr($head, 15);                      
    }
}
于 2013-09-24T23:05:57.690 回答
1

filesize()是要使用的功能。它可能会失败,因为

  1. 您正在尝试获取网址,并且 URL 包装器可能未打开
  2. 该网址无效。

如果您尝试filesize()在本地文件上运行,请引用文件系统路径,而不是某个 Web URL。

于 2010-09-27T15:25:26.647 回答
0

filesize将文件名作为参数而不是 URL,并以字节为单位返回文件的大小。您可以将返回值除以1024获取以 KB 为单位的大小。

于 2010-09-27T15:25:25.253 回答
0

我有同样的问题,我是这样解决的。我不知道它有多优化,但它对我有用:

getimagesize("http://localhost/projects/site/schwe/user/1/1.jpg");

$file_size = $file[0]*$file[1]*$file["bits"];
于 2012-10-03T13:45:01.523 回答