Zend Framework图像上传错误:给定目标不可写

时间:2014-08-01 03:37:45

标签: php zend-framework file-upload zend-form lamp

//Default Image with article
    $imgElement = new Zend_Form_Element_File('imgElement');
    $imgElement->setLabel("Upload an Image:");
    $imgElement->setDestination(APPLICATION_PATH."/../upload/articleImg/");      
    $imgElement->addValidator('Count',false,1); //ensure only 1 file
    $imgElement->addValidator('Size',false,102400); //limit to 100K
    $imgElement->addValidator('Extension',false,'jpg,png,gif');
    $this->addElement($imgElement);

以上是我上传文件和文章的代码。 我得到的错误是

An error occurred
Application error
Exception information:
Message: The given destination is not writeable

如果我执行ls -l,我会drwxrwxr-x 3 aman aman 4096 Jul 31 20:03 upload 我有权写这个目录。如果我使用终端和mv一些文件到那个位置它会通过。我认为我的应用程序可能没有写入该目录的权限吗?

这是一个错误还是什么? 我也尝试过这个。但没有工作

//Default Image with article
    $destination = APPLICATION_PATH."/../upload/articleImg";
    chmod($destination ,0777);

    $imgElement = new Zend_Form_Element_File('imgElement');
    $imgElement->setLabel("Upload an Image:");
    $imgElement->setDestination($destination);      
    $imgElement->addValidator('Count',false,1); //ensure only 1 file
    $imgElement->addValidator('Size',false,102400); //limit to 100K
    $imgElement->addValidator('Extension',false,'jpg,png,gif');
    $this->addElement($imgElement);

3 个答案:

答案 0 :(得分:0)

在您的主机控制面板中,您需要为该文件夹设置文件权限,使其可写。

转到控制面板的文件资源管理器并在其中进行更改。

-OR -

如果是本地副本,则需要通过操作系统设置权限。

在unix,linux,mac中,这是:

chmod 777 ./upload

(来自public / images /文件夹)

在Windows中,我认为您只需右键单击上传文件夹 - >属性和un-tick只读。要么是这样,要么在共享和安全选项中设置权限。

答案 1 :(得分:0)

您的网络服务器可能未在上传文件夹中设置了写入权限的用户或组aman下运行。 更改文件夹

的所有者(www-data是ubuntu的默认值)
chown -R www-data ./upload

或赋予它全局写入权限

chmod -R 777 ./upload

我会推荐第一个解决方案。 -R是可选的,如果需要,还会更改upload文件夹子文件夹的权限。

答案 2 :(得分:0)

使用以下链接解决:https://serversforhackers.com/permissions-users/

显然我必须授予对网络用户的访问权限,即www-data。按照以下步骤操作。

sudo usermod -a -G www-data aman
sudo chgrp www-data /home/aman/Work/aman_proj
chmod g+rwxs /home/aman/Work/aman_proj

感谢您的帮助:)