2015-11-20 2 views
1

Невозможно заставить эту функцию работать внутри моего контроллера. Он всегда возвращаетсяgetimagesize() не работает должным образом в Yii2

getimagesize(/web/uploads/image1.jpg): failed to open stream: No such file or directory 

называть его так:

$user->avatar = Yii::$app->getUrlManager()->getBaseUrl() . '/uploads/' . $model->avatar->baseName . '.' . $model->avatar->extension; 
getimagesize($user->avatar); 

Любые решения?

Отображается доступ к /web/uploads/image1.jpg из изображения в браузере.

+1

getimagesize - это функция Php, которая должна работать. Вы пытаетесь с полным путем? –

ответ

1

getimagesize - это встроенная функция PHP и не имеет ничего общего с каркасом. Вам необходимо указать полный путь изображения, используя basePath, а не baseUrl. baseUrl предназначен для отображения изображений.

Построить свой путь, как это вместо:

use Yii; 

... 

$imagePath = Yii::$app->basePath . '/web/uploads/' . $model->avatar->baseName . '.' . $model->avatar->extension; 

Вы также можете установить псевдоним для uploads папки, как это в bootstrap.php файл (этот пример для продвинутых приложений):

Yii::setAlias('uploads', dirname(dirname(__DIR__)) . '/frontend/web/uploads'); 

Тогда получить полный путь к папке uploads, вы можете обратиться к ней следующим образом:

Yii::getAlias('uploads'); 
+1

это помогло. благодаря –

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