未能打开流和权限被拒绝错误
问题描述:
我一直被困在两个问题上,我认为它们是相关的。首先是我试图上传一个文件(并且我打算在完成这个工作后重新命名)。第二是我试图记录某些事件。未能打开流和权限被拒绝错误
代码的第一个问题是:
move_uploaded_file($_FILES['logo']['tmp_name'],
basename($_FILES['logo']['name']));
我得到的错误是:
Warning: move_uploaded_file(224537_10150405406507786_833667785_10758194_3953892_n.jpg):
failed to open stream: Permission denied in /var/www/html/MVP/test/uploadFile.php
on line 3 Warning: move_uploaded_file(): Unable to move '/tmp/phpuDHoo6'
to '224537_10150405406507786_833667785_10758194_3953892_n.jpg'
in /var/www/html/MVP/test/uploadFile.php on line 3
第二个代码的第二个问题是这样的:
function logToFile($msg){
$logfile=dirname(__FILE__)."/../../shared/log/logCleanups.log";
$fd = fopen($logfile, "a+");
fwrite($fd, date("Y-m-d H:i:s",time("now")).$msg."/n");
fclose($fd);
}
我得到的错误是:
Warning: fopen(/var/www/html/MVP/administrative/controllers/../../shared/log/logCleanups.log):
failed to open stream: No such file or directory
in /var/www/html/MVP/administrative/controllers/cleanupAds.php
on line 10
Warning: fclose() expects parameter 1 to be resource, boolean given
in /var/www/html/MVP/administrative/controllers/cleanupAds.php on line 12
哦。而且,我已经做了chmod 777的事情。似乎我找到的每个答案都是这样。
答
第一个错误信息是简单地说明您的PHP运行的标识没有权限将文件写入您尝试写入的目录。尝试更改您的目录权限或PHP正在执行的身份。
您的文章中的第二个错误是两个单独的错误(#2和#3)。第二种状态表示您要打开的文件不存在。第三个因为第二个错误而发生。
要解决这些问题,请仔细查看目录和文件结构,并确保您使用的文件路径是有效且可访问的。
答
在第一个错误,它说Permission denied
。这对我来说很清楚。您无权在该目录中移动文件。您必须更改权限。
关于第二个错误,您似乎正在使用相对路径。从我可以告诉,这是行不通的。尝试使用完整路径而不是/../../
。这可能会解决您的fclose()
错误。
答
对于第一个问题:您没有权限将文件写入当前目录。 有两种方法可以解决这个问题, a)通过更改目标权限来写入文件。 b)通过更改文件目标路径本身,其中您拥有复制/上载文件的写权限。
而对于第二个问题:给定的路径可能是错误的。
使用绝对路径(完整路径而不是../../)并检查日志文件的文件权限。
谢谢!错误#2和#3似乎不再是一个问题。不幸的是,我似乎无法控制错误1。我现在有更多重要的事情需要担心,所以我现在就把它放在后面 –