在Codeigniter中上传文件问题

时间:2011-11-30 04:45:26

标签: php codeigniter file-upload

这是我在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

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

错误消息指出这是权限问题。确保您在uploads文件夹中设置了正确的权限。 From the documentation

  

您上传的图片需要一个目标文件夹。创建一个   CodeIgniter安装根目录下的文件夹,称为uploads和   将其文件权限设置为777。

答案 1 :(得分:0)

由于两个原因发生此错误。

  1. 文件夹,无效组和用户所有者的权限。
  2. 错误的路径。
  3. 文件夹的权限和所有者:

    如果你在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,那么 转到您要上传/保持'上传文件'的文件夹,右键单击该文件夹 - >属性 - >权限然后,更改所有“访问”以创建和删除文件。

如果还没有发生,则转到其父文件夹,然后执行相同的步骤。我敢肯定,你不会得到这个问题。因为,刚才,我得到了这个错误。而且,我只是这样解决了。