getimagesize() 在 Yii2 中无法正常工作

getimagesize() not working properly in Yii2

无法让此功能在我的控制器中运行。它总是 return

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');