0

ユーザーから画像を受け取り、それを Amazon S3 アカウントにアップロードしようとしていますがWarning: move_uploaded_file(/items) [function.move-uploaded-file]: failed to open stream: Permission denied、Zend Framework からエラーが発生しています。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.";
            }
4

1 に答える 1

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";

/または、すでにプロジェクト ルートにいる場合は、最初のものを削除します。

于 2012-07-17T21:27:35.363 に答える