Codeigniter中的文件上传问题

3
这是我在CodeIgniter应用程序中上传文件的代码:
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是文件字段的名称。我在根目录中有一个名为uploads的文件夹。当我上传文件时,出现了错误。这在我们的服务器上可以正常工作,但在客户端的服务器上无法正常工作。

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个回答

1
错误提示指出这是一个权限问题。请确保在上传文件夹上设置了正确的权限。从文档中看到:

您需要为上传的图像创建一个目标文件夹。在您的 CodeIgniter 安装根目录下创建一个名为“uploads”的文件夹,并将其文件权限设置为777。


是的,我在根目录下有一个名为uploads的文件夹。如何将其权限设置为777? - Kichu
1
@KichuUser:快速的谷歌搜索会告诉您如何为您所使用的系统(Linux,Windows等)设置文件夹权限。 - Colin Brock

0

如果使用UBUNTU操作系统,则前往您上传/保存“已上传文件”的文件夹,右键单击该文件夹 ->属性 ->权限然后将所有“访问”更改为创建和删除文件。

如果仍然出现问题,请转到其父文件夹并按照相同步骤操作。我确定您不会遇到此问题。因为我刚刚遇到了这个错误,我是通过这种方式解决的。


0

这个错误发生的原因有两个。

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

文件夹的权限和所有者:

如果您使用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

-system

-user_guide

-index.php

-图片文件夹

  $target_directory="picture_folder/sub_folder";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接