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 回答