我正在使用yii框架,我试图在S3上传图像。
使用CUploadedFile将文件存储在本地服务器中。我需要在亚马逊发送新图像,因为服务器已满。
图像被发送到s3服务器但它们已损坏且无法打开。
ArticleControllers.php
public function actionCreate() {
$model = new Article();
if(isset($_POST['Article']) {
$model->attributes = $_POST['Article']
$model->image = CUploadedFile::getInstance($model, 'image');
$image = new Image();
$uploadSuccess = $image->insertNewPicture($model->image);
if ($uploadSuccess)
$model->save();
}
}
Image.php
public function insertNewPicture($image) {
if (empty($image))
return false;
$s3Client = S3Client::factory(Yii::app()->params['s3']);
try {
$success = $s3Client->upload('my_bucket',
'test.png', fopen($image->getTempName(), 'rb'),
'public-read');
} catch (Exception $e) {
return false;
}
if (!$success)
return false;
return $this->save();
}
我也尝试过file_get_contents($ image-> getTempName()),但我不知道出了什么问题....