2011-12-12 123 views
0

我一直被困在两个问题上,我认为它们是相关的。首先是我试图上传一个文件(并且我打算在完成这个工作后重新命名)。第二是我试图记录某些事件。未能打开流和权限被拒绝错误

代码的第一个问题是:

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的事情。似乎我找到的每个答案都是这样。

回答

0

第一个错误信息是简单地说明您的PHP运行的标识没有权限将文件写入您尝试写入的目录。尝试更改您的目录权限或PHP正在执行的身份。

您的文章中的第二个错误是两个单独的错误(#2和#3)。第二种状态表示您要打开的文件不存在。第三个因为第二个错误而发生。

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

+0

谢谢!错误#2和#3似乎不再是一个问题。不幸的是,我似乎无法控制错误1。我现在有更多重要的事情需要担心,所以我现在就把它放在后面 –

0

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

关于第二个错误,您似乎正在使用相对路径。从我可以告诉,这是行不通的。尝试使用完整路径而不是/../../。这可能会解决您的fclose()错误。

1

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

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

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

相关问题