无法打开流和权限被拒绝错误

时间:2011-12-12 03:19:42

标签: php

我一直坚持两个问题,我认为它们是相关的。首先是我正在尝试上传文件(我打算在我开始工作后重命名)。第二个是我正在尝试记录某些事件。

第一期的代码是:

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的事情。似乎我发现的每一个答案都是。

3 个答案:

答案 0 :(得分:1)

对于第一个问题:您无权将文件写入当前目录。 有两种方法可以解决这个问题,  a)通过更改目标写入文件的权限。  b)通过更改文件目标路径本身,您具有复制/上载文件的写入权限。

对于第二个问题:给定的路径可能是错误的。

使用绝对路径(完整路径而不是../../)并检查日志文件的文件权限。

答案 1 :(得分:0)

第一条错误消息只是声明运行PHP的标识没有将文件写入您尝试写入的目录的权限。尝试更改目录权限或PHP正在执行的标识。

帖子中的第二个错误是两个单独的错误(#2和#3)。第二个表示您尝试打开的文件不存在。第三种情况是由于第二次错误而发生的。

要解决这些问题,请仔细查看您的目录和文件结构,并确保您使用的文件路径有效且可访问。

答案 2 :(得分:0)

在第一个错误上,它显示Permission denied。这对我来说相当清楚。您无权在该目录中移动文件。您必须更改权限。

在第二个错误上,您似乎使用了相对路径。据我所知,这是行不通的。尝试使用完整路径而不是/../../。这可能会解决您的fclose()错误。