这是我在codeigniter应用程序中的uploadinfg文件代码
function upload_logo(){
$ex=$_FILES['uploadfile']['name'];
$epld=explode('.',$ex);
$filename=date("mdyHis").".".$epld[1];
$userfile_size=$_FILES['uploadfile']['size'];
$imggtype=$_FILES['uploadfile']['type'];
if(move_uploaded_file($_FILES['uploadfile']['tmp_name'],"./uploads/".$filename))
{
echo $filename;
}
}
这里uploadfile
是文件字段的名称。我在根文件夹中有一个名称上传的文件夹。当我上传文件时,我收到了错误。这是在我们的服务器上工作但不在客户端的服务器上工作。
A PHP Error was encountered
Severity: Warning
Message: move_uploaded_file(./uploads/112911224341.docx) [function.move-uploaded-file]: failed to open stream: Permission denied
Filename: controllers/pms.php
Line Number: 156
A PHP Error was encountered
Severity: Warning
Message: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpvhzCkw' to './uploads/112911224341.docx'
Filename: controllers/pms.php
Line Number: 156
我该如何解决这个问题?
答案 0 :(得分:1)
错误消息指出这是权限问题。确保您在uploads文件夹中设置了正确的权限。 From the documentation:
您上传的图片需要一个目标文件夹。创建一个 CodeIgniter安装根目录下的文件夹,称为uploads和 将其文件权限设置为777。
答案 1 :(得分:0)
由于两个原因发生此错误。
如果你在Linux。打开终端输入此命令。这将更改文件夹的所有者。
$ cd project_path && sudo chown -R www-data:www-data picture_folder/
键入此命令以更改文件夹的权限。
$ sudo chmod -R 777 picture_folder/
注意:使用man命令可以获得有关这些命令的更多帮助。
$ man chmod OR man chown
在codeigniter中,执行index.php根文件。这是所有活动的责任。所以不要使用base_url()作为根路径。代替。只需提供根文件夹名称。喜欢
CI申请 - >
-application
- 系统
-user_guide
-index.php
-picture_folder
$target_directory="picture_folder/sub_folder";
答案 2 :(得分:0)
如果是UBUNTU OS,那么 转到您要上传/保持'上传文件'的文件夹,右键单击该文件夹 - >属性 - >权限然后,更改所有“访问”以创建和删除文件。
如果还没有发生,则转到其父文件夹,然后执行相同的步骤。我敢肯定,你不会得到这个问题。因为,刚才,我得到了这个错误。而且,我只是这样解决了。