Код: Выделить всё
public function actionCreate()
{
$model = new Cafedra();
if ($model->load(Yii::$app->request->post())) {
// Получаем массив данных по загружамому файлу
$image_id = UploadedFile::getInstance($model, 'image_id');
$filename = $image_id->name;
$ext = end((explode(".", $image_id->name)));
// Генерируем уникальное имя файла
$model->title_en = TransliterateHelper::cyrillicToLatin($model->title);
$model->image_id = 'cafedra-'.
substr($model->title_en, 0, 6) . '-' .
Yii::$app->getSecurity()->generateRandomString(5). '.'.$ext;
$image_name = $model->image_id;
// Путь к папке где будет хранится файл
$path = Yii::$app->basePath . '/uploads/cafedra/' . $model->image_id;
if($model->save()){
// Сохраняем рисунок
$image_id->saveAs($path);
// Обработка загруженного изображения '600', '400'
$image_full = Yii::$app->image->load($path);
$full_path = Yii::$app->basePath . '/uploads/cafedra/' . $image_name;
$image_full->resize('600', '400');
$image_full->save($full_path);
// Создание thumbs
$image_less = Yii::$app->image->load($path);
$less_path = Yii::$app->basePath . '/uploads/cafedra/thumbs/thumb_' . $image_name;
$image_less->resize('50', '50');
$image_less->save($less_path);
return $this->redirect(['view', 'id'=>$model->id]);
} else {
throw new NotFoundHttpException('Не удалось загрузить данные');
}
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
Код: Выделить всё
namespace app\components\imageHandler;
use yii\base\Component;
use yii\web\UploadedFile;
use yii\imagine\Image;
use app\helpers\TransliterateHelper;
class ImageHandler extends Component
{
public static function createImage($model, $module, $attribute = 'image_id' )
{
// Получаем массив данных по загружамых файлах
$image_id = UploadedFile::getInstance($model, $attribute);
$filename = $image_id->name;
$ext = end((explode(".", $image_id->name)));
// Генерируем уникальное имя файла
$model->title_en = TransliterateHelper::cyrillicToLatin($model->title);
$model->image_id = $attribute . '-'.
substr($model->title_en, 0, 6) . '-' .
//Yii::$app->getSecurity()->generateRandomString(5). '.'.$ext;
'abcde.'.$ext;
$image_name = $model->image_id;
// Путь к папке где будет хранится файл
$path = \Yii::$app->basePath . '/uploads/'.$module.'/' . $model->image_id;
if($model->save()){
// Сохраняем рисунок
$image_id->saveAs($path);
$image_full = \Yii::$app->image->load($path);
$full_path = \Yii::$app->basePath . '/uploads/'.$module.'/' . $image_name;
$image_full->resize('600', '400');
$image_full->save($full_path);
// Обработка загруженного изображения и создание thumbs
$image_less = \Yii::$app->image->load($path);
$less_path = \Yii::$app->basePath . '/uploads/'.$module.'/' .' thumbs/thumb_' . $image_name;
$image_less->resize('50', '50');
$image_less->save($less_path);
return $this->redirect(['view', 'id'=>$model->id]);
} else {
throw new NotFoundHttpException('Не удалось загрузить данные');
}
}
Код: Выделить всё
Yii::$app->imageHandler->createImage($model, 'cafedra');
Я так понимаю что оно пытается создать новый екземпляр приложения, а не использовать существующий. Или возможно причина ошибки в чем то другом?