PHP - filesize() 返回一个空字符串
Posted
技术标签:
【中文标题】PHP - filesize() 返回一个空字符串【英文标题】:PHP - filesize() returns an empty string 【发布时间】:2015-12-23 05:45:18 【问题描述】:我有一个奇怪的问题。我有一张图片需要上传到文件服务器。我正在使用 php 来执行此操作。图片权限如下
-rw-r--r--. 1 apache apache 148041 Dec 22 08:25 Not.jpg
我检查了文件是否存在。我已经下载了文件,发现没问题。它的原始大小是 60 KB。权限也很好。
当我执行以下操作时
$filepath = "../uploads/".$file_name;
$image = fopen($filepath, "rb");
echo file_exists($filepath).' ';
echo filesize($filepath). 'bytes ';
echo exif_read_data($filepath). ' ';
输出是
1 bytes 200
1 - File Exists
bytes - This is where the error occurs. filesize() is returning an empty string here
200 - server response
加载此文件的正确方法是什么?
【问题讨论】:
尝试使用绝对路径。 @roullie 感谢您的快速回复。我试过了。但还是一样。 你可以用getimagesize
试试看这个函数是否也返回相同的值
还启用错误报告并检查filesize
功能,如果失败,将发出E_WARNING。
@ChetanAmeta getimagesize 返回 false
【参考方案1】:
作为对fopen manual of PHP 的参考,模式应该是读或写。您正在使用未定义模式 rb。试试这个
$image = fopen($filepath, "r");
【讨论】:
您没有阅读文档的注意部分。第三段解释了模式后面的b
标志:要使用这些标志,请将“b”或“t”指定为模式参数的最后一个字符。以上是关于PHP - filesize() 返回一个空字符串的主要内容,如果未能解决你的问题,请参考以下文章
file_get_contents('php://input') 总是返回一个空字符串