警告:filesize函数操作失败

3
以下代码:
<?php
$filevar = "/images/staunton/{$options_item['base_var']}.gif";

if(filesize($filevar) > 1616){
    $setstatus = "enabled";
}
else{
    $setstatus = "disabled";
}       
?>

结果为:

Warning: filesize() [function.filesize]: stat failed for /images/staunton/3-25.gif in [Originating PHPFILE(Edited)] on line 24

路径是正确的文件....我的托管服务器正在运行php 5.2 - 这是语法错误吗?我一直在查看类似的代码,它看起来是正确的。


$filevar 变量中的文件是否存在?PHP 进程是否有读取它及其所在目录的权限? - andrewsi
6
我认为您的服务器没有一个名为“images”的根层级文件夹。 - DCoder
请检查您的(Apache?)服务器是否具有对该文件的读取权限,并且完整路径是否正确。 - Matt S
@DCoder 我想你可能是对的 - @OP 在 $filevar 上执行 file_exists() 然后看看会发生什么。 - GhostInTheSecureShell
1
路径不是正确的文件...你是否混淆了URL和本地文件路径? - deceze
1个回答

10

不要这样做:

$filevar = "/images/staunton/{$options_item['base_var']}.gif";

你可能想要的是:

$filevar = $_SERVER["DOCUMENT_ROOT"] . "/images/staunton/{$options_item['base_var']}.gif";

因为你可能会混淆页面中相对于文档根目录的图像路径和文件系统中图像的绝对路径

试一下然后回复评论。


另外,请确保文件所属的文件夹不可写。 - Ali Emre Çakmakoğlu
1
非常好的答案,$_SERVER["DOCUMENT_ROOT"] 也是我的问题的解决方案。 - Bastien Bastiens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接