0

我试图从用户那里收到一张图片,然后将其上传到我的Amazon S3帐户,但是我收到了来自Zend Framework的错误Warning: move_uploaded_file(/items) [function.move-uploaded-file]: failed to open stream: Permission denied。我通过FTP将文件夹的权限设置为777,但仍然出现错误。以下是产生错误的代码,有可能造成差异。这个错误正在接收,我会假设。我怎样才能摆脱这个错误?权限被拒绝上传图片

$upload = new Zend_File_Transfer(); 
     $upload->addValidator('ImageSize', false, array('minwidth' => 100, 
                'maxwidth' => 1000, 
                'minheight' => 100, 
                'maxheight' => 1000), 'image') 
     ->addValidator('Extension', false, 'jpg') 
     ->addValidator('Count', false, array('min'=>0, 'max'=>2)); 

if($upload->isUploaded('image')){ //Pic was uploaded 
       if($upload->isValid('image')){ //Pic is valid 
        echo "Pic provided is valid."; 
        $upload->addFilter('Rename',array('target'=>"/items/{$item_id}_nla.jpg",'overwrite'=>true)); 
        $upload->receive(); 
        $pic = "/items/{$item_id}_nla.jpg"; 
        $s3->putObject("media.completeset.com/images/items/{$item_id}_nla.jpg", $pic, 
            array(Zend_Service_Amazon_S3::S3_ACL_HEADER => Zend_Service_Amazon_S3::S3_ACL_PUBLIC_READ, 
              Zend_Service_Amazon_S3::S3_CONTENT_TYPE_HEADER => "image/jpeg")); 
        echo "Pic is uploaded."; 
       } 
       echo "Pic is invalid."; 
      } 
+0

您需要在文件夹上设置正确的权限... – Lix 2012-07-17 21:23:30

+0

您确定您有权限设置该文件夹的权限吗? – madfriend 2012-07-17 21:24:29

+0

即使将权限设置为777,它仍然会发生。 – jaimerump 2012-07-17 21:24:43

回答

2

更改目录,因此是绝对的:

$projectRootDirectory = "/var/www/myproject"; 
// ... 
$upload->addFilter('Rename',array('target'=> $projectRootDirectory."/items/{$item_id}_nla.jpg",'overwrite'=>true)); 
// ... 
$pic = $projectRootDirectory."/items/{$item_id}_nla.jpg"; 

或删除第一/如果你已经在项目的根。

+1

创建一个绝对路径解决它,我想这只是试图上传到一个不同的文件夹,而不是我认为的那样。 – jaimerump 2012-07-18 15:33:52