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');
无法让此功能在我的控制器中运行。它总是 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');