我一直在谷歌,但我得到的是getimagesize和文件大小。
getimagesize dosent获取KB大小只是宽度和高度,这不是我所期待的。
文件大小给我留言警告:文件大小()[function.filesize]:统计失败
有问题的文件是51KB .jpg文件PHP获得图像的KB大小
$imgsize=filesize("http://localhost/projects/site/schwe/user/1/1.jpg");
不起作用,
我该如何做到这一点?
我一直在谷歌,但我得到的是getimagesize和文件大小。
getimagesize dosent获取KB大小只是宽度和高度,这不是我所期待的。
文件大小给我留言警告:文件大小()[function.filesize]:统计失败
有问题的文件是51KB .jpg文件PHP获得图像的KB大小
$imgsize=filesize("http://localhost/projects/site/schwe/user/1/1.jpg");
不起作用,
我该如何做到这一点?
无法获取远程元素的文件大小,或者在系统上给出相对路径,或者先执行file_get_contents()
以获取内容优先 。因此,而不是http://,做一个filesize('/path/to/local/system')
。确保它可以通过php程序读取
是啊,真的,我只是注意到,谢谢。我应该事先想到它,即时通讯这样一个白痴。 – Macao 2010-09-27 15:25:33
[PHP.net上的'filesize()'文档](http://php.net/manual/en/function.filesize.php)中的提示怎么样?它说:“从PHP 5.0.0开始,此函数也可以用于一些URL包装器。请参阅支持的协议和包装器,以确定哪些包装器支持stat()系列功能”。看来,你**可以**使用'filesize()'远程元素。你只需要正确配置你的服务器和PHP解析器(安全问题)。 – trejder 2013-09-17 09:20:31
你不能像这样查找远程文件的文件大小。这是为了查看本地文件的文件大小。
例如...
$imgsize = filesize('/home/projects/site/1.jpg');
查看我对Stewie的回答的评论。如果只有您的环境和服务器配置正确,您**可以**使用文件大小作为远程文件。 – trejder 2013-09-17 09:21:34
filesize
需要的文件名作为参数不是一个URL,它返回字节文件的大小。您可以将返回值除以1024
以获得KB的大小。
查看我对Stewie的回答的评论。如果只有您的环境和服务器配置正确,您**可以**使用文件大小作为远程文件。 – trejder 2013-09-17 09:22:06
filesize()
是使用的功能。它可能会失败,因为
如果您尝试在本地文件上运行filesize()
,请参考文件系统路径,而不是某个网址。
我有同样的问题,我解决这个问题。我不知道它是多么最优的,但它为我工作:
getimagesize("http://localhost/projects/site/schwe/user/1/1.jpg");
$file_size = $file[0]*$file[1]*$file["bits"];
如果filesize()不适用于HTTP资源,则getimagesize()也会失败。通过乘以未压缩的图像属性来计算文件大小也会导致错误的结果。 – Sven 2012-10-03 18:25:57
或者你也可以这样做:
$header = get_headers($url);
foreach ($header as $head) {
if (preg_match('/Content-Length: /', $head)) {
$size = substr($head, 15);
}
}
哪个版本的PHP您使用的? – pascal 2010-09-27 15:26:25
也许看到[这个问题](http://stackoverflow.com/questions/2203679/php-filesize-works-on-all-but-one-file-gives-stat-failed-error) – pascal 2010-09-27 15:31:47