我正在使用带有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的权限。
那么,我怎样才能在服务器上写图像?
答案 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,我能够在服务器上的目录中写入文件。