在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。

+1

getimagesize是它应该工作的PHP函数。你有完整的路径尝试吗? –

getimagesize是本地PHP函数,与框架无关。您需要使用basePath指定完整映像路径,而不是baseUrlbaseUrl用于显示图像。

构建这样的,而不是你的路径:

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

这个帮助。谢谢 –