2015-11-20 84 views
1

無法使用此功能在控制器內部工作。它總是返回在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函數。你有完整的路徑嘗試嗎? –

回答

1

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

這個幫助。謝謝 –