getimagesize () не работает должным образом в Yii2

1

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

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, которая должна работать. Вы пробовали с полным путем?
Теги:
yii2

1 ответ

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
    это помогло. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню