首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >filesize()函数不起作用

filesize()函数不起作用
EN

Stack Overflow用户
提问于 2012-10-23 23:08:49
回答 6查看 4.2K关注 0票数 1

我上传了一些文件到一个文件夹,当我使用filesize函数时,我得到了这样的信息:

代码语言:javascript
复制
Message: filesize() [function.filesize]: stat failed for http://www.books.tahasoft.com/216.ppt

文件路径为:

代码语言:javascript
复制
http://www.books.tahasoft.com/216.ppt

下面是我的代码:

代码语言:javascript
复制
<?
echo filesize("http://www.books.tahasoft.com/216.ppt");
?>

我该如何解决这个问题呢?

EN

回答 6

Stack Overflow用户

发布于 2012-10-23 23:11:33

您无法通过http协议获取文件大小。

如果文件位于本地服务器上,则在文件系统中使用带有绝对路径或相对路径的filesize。

票数 6
EN

Stack Overflow用户

发布于 2015-08-18 12:34:36

你可以像这样使用......

代码语言:javascript
复制
 $ch = curl_init('http://www.books.tahasoft.com/216.ppt');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_HEADER, TRUE);
 curl_setopt($ch, CURLOPT_NOBODY, TRUE);
 $data = curl_exec($ch);
 $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

 curl_close($ch);
 echo $size;
票数 3
EN

Stack Overflow用户

发布于 2012-10-23 23:11:59

http://流包装器does not support stat系列函数,因此您不能使用filesize执行此操作,因为文档警告:

从PHP5.0.0开始,这个函数也可以和一些网址包装器一起使用。请参考支持的协议和包装器,以确定哪些包装器支持stat()系列功能。

如果您需要通过HTTP传输文件大小,而不必先下载整个文件,那么您可以使用curl获得它;您可以看看如何使用here。但请记住,这取决于远程服务器决定发回的标头;不能保证它总是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13033568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档