在Yii2中getimagesize()无法正常工作
问题描述:
无法使用此功能在控制器内部工作。它总是返回在Yii2中getimagesize()无法正常工作
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;
您还可以在bootstrap.php
文件中设置别名,像这样uploads
文件夹(本例中是先进的应用程序):
Yii::setAlias('uploads', dirname(dirname(__DIR__)) . '/frontend/web/uploads');
然后得到完整的路径uploads
文件夹,你可以这样参考它:
Yii::getAlias('uploads');
+1
这个帮助。谢谢 –
getimagesize是它应该工作的PHP函数。你有完整的路径尝试吗? –