我在Laravel 4中编写过小型CMS,我正在使用wamp进行处理。应用程序位于www
文件夹中,一切正常。
当我完成开发后,我将应用程序移动到我的实时服务器,并将应用程序放在我的主机的root
文件夹中(public_html
上方的文件夹)。
在某些函数中,我正在检查是否存在某些文件,而当我在wamp上时,一切正常,但现在file_exists()
总是返回false
。
存储文件的文件夹的文件夹权限设置为755,文件具有相同的权限。
我已经尝试了clearstatcache()
,安全模式不是问题,因为它已在PHP 5.4中删除了。还有其他想法吗?
if(file_exists('public_html/repo/images/testimage.jpg')){
//do something
}
else{
echo "error";
}
我已多次检查过,如果我尝试通过url
访问它,则文件确实存在答案 0 :(得分:4)
嗯,首先你说你在WAMP,可能是文件夹里有大写字母。请记住,对于linux而言,windows对文件夹不区分大小写。
第二,laravel的index.php
文件在哪里? (它通常位于public
文件夹中),file_exists()
与其相关,因此,如果您的安装位置为:public_html/public/index.php
且repo/images
位于public
文件夹,则应检查for:file_exists('repo/images...');
Laravel旨在将其文件保留在公共访问之外,因此我建议您将laravel的文件和文件夹放在根/
中,同时将public
文件夹中的所有内容移至public_html
。这样,您可以相对于public_html
文件夹检查文件是否存在。
file_exists('repo/images...');
file_exists('../app/views/hello.blade.php');
...