如何定义一个UPLOAD_DIR
常量(或等效的常量),以便我可以在任何地方使用它?
我尝试将其作为应用程序配置参数
'params'=>array(
'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),
但是Yii::app()->baseUrl
不能在配置文件中使用。
您可以在 index.php
中执行此操作,在调用 Yii::createApplication
之后和 Yii::app()->run()
之前:
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
然后,您可以像使用任何其他PHP常量一样使用它,例如 echo UPLOAD_DIR
.
编辑:当我在createApplication
之后和run
之前说时,我的意思正是如此(另外,并不是说既有createWebApplication
又有createApplication
,这是前者的更通用版本)。
所以如果你目前有
Yii::createWebApplication(...)->run();
你必须把它分成
Yii::createWebApplication(...);
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
Yii::app()->run();
另一种选择是仅向应用程序类添加另一个属性。例如,如果您的protected/components
目录中有一个class MyApplication
,那么您可以简单地执行以下操作:
class MyApplication extends CWebApplication {
// ...other code...
public function getUploadDir() {
return $this->baseUrl.'/images/uploads/';
}
}
然后,您将以Yii::app()->uploadDir
的形式访问它。