Невозможно заставить эту функцию работать внутри моего контроллера. Он всегда возвращается
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 из изображения браузера.
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');