fwrite函数无法找到本地服务器以外的目录

时间:2015-08-04 09:09:51

标签: php codeigniter

我正在使用带有php的codeigniter。我试图在我的文件结构(Ubuntu文件结构)中写入图像。此图片来自网址。我写代码的代码是

$content = file_get_contents($url);
                $filename = "myImage.jpg";
                $filepath = "/opt/lampp/htdocs/affiliatedSystem/assets/file/".$filename;
                //Store in the filesystem.
                $fp = fopen($filepath , "w");
                fwrite($fp, $content);
                fclose($fp);

这段代码在localhost上运行得非常好,但是当我在服务器上上传项目时,它给出了这样的错误

  

消息:fopen(/opt/lampp/htdocs/affiliatedSystem/assets/file/myImage.jpg):   无法打开流:没有这样的文件或目录我也给了文件   对服务器上的文件夹777的权限。

那么,我怎样才能在服务器上写图像?

2 个答案:

答案 0 :(得分:0)

(我无法添加评论,所以我写了答案。但这是解决方案吗?)。

我在Fedora Linux上遇到了同样的问题。该文件夹的所有者是我,没有阿帕奇。尝试使用您的用户apache更改所有者文件夹(如果您使用apache)。

首先,激活httpd_unified:

  

setsebool -P httpd_unified on

其次,给予用户apache权限:

  

chown yourApacheUser:yourApacheGroup / var / www /..../ yourDirectory

答案 1 :(得分:0)

最后,我得到答案,我在url的开头使用$ _SERVER ['DOCUMENT_ROOT']函数,就像这样$_SERVER['DOCUMENT_ROOT']."/affiliatedsystem/assets/file/".$filename; 它给了我服务器的正确URL,我能够在服务器上的目录中写入文件。