2015-07-02 5 views
2

Как создать изображение большого пальца из загруженного изображения?Создать эскиз из загруженного изображения в Yii2

Я попробовал это в моем контроллер:

<?php 
namespace backend\controllers; 

use Yii; 
use app\models\Employee; 
use yii\web\Controller; 
use yii\web\NotFoundHttpException; 
use yii\filters\AccessControl; 
use yii\filters\VerbFilter; 
use yii\web\UploadedFile; 
use yii\imagine\Image; 

public function actionCreate() { 
    $model = new Employee(); 
    $model->added_date_time = date('Y-m-d H:i:s'); 
    if ($model->load(Yii::$app->request->post())) { 
     $model->file = UploadedFile::getInstance($model,'avatar'); 

     if (!empty($model->file)) { 
      $imageName = Yii::$app->security->generateRandomString(); 
      $model->file->saveAs('uploads/' . $imageName . '.' . $model->file->extension); 
      $model->avatar = $imageName . '.' . $model->file->extension; 
      $file = 'uploads/' . $imageName . '.' . $model->file->extension; 
      Image::thumbnail($file, 200, 200)->save('uploads/thumb/', ['quality' => 80]); 
     } 
     if ($model->save()) { 
      $this->redirect(\Yii::$app->urlManager->createUrl('employee')); 
     } 
    } else { 
     return $this->render('create', ['model' => $model]); 
    } 
} 

И это не работает. Изображение загружается, но большой палец не создается.

Может ли кто-нибудь помочь?

ответ

2

Установи правильные пути к оригинальным и миниатюре изображений, затем save Результат:

$imgPath = Yii::$app->basePath . '/uploads/'; // as an example 
$imgName = Yii::$app->security->generateRandomString(); 
$fileExt = '.' . $model->file->extension; 

$originFile = $imgPath . $imgName . $fileExt; 
$thumbnFile = $imgPath . $imgName . '-thumb' . $fileExt; 

// Generate a thumbnail image 
Image::thumbnail($originFile, 200, 200)->save($thumbnFile, ['quality' => 80]); 
2

Пожалуйста, попробуйте с этим кодом

$file = Yii::$app->basePath.'/uploads/'.$imageName.'.'.$model->file->extension; 
$thumbFile = Yii::$app->basePath.'/uploads/thumb/'.$imageName.'.'.$model->file->extension; 
Image::thumbnail($file, 200, 200)->save($thumbFile, ['quality' => 80]); 
+0

я дам попробовать и вернуться к вам , –

+0

Можете ли вы дать мне класс изображения? –

+0

она до сих пор не работает –

Смежные вопросы