//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);
答案 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
感谢您的帮助:)