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

+0

해당 폴더에 대한 사용 권한을 설정 했습니까? – madfriend

+0

권한이 777로 설정된 경우에도 여전히 발생합니다. – jaimerump

답변

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

관련 문제