如何定义UPLOAD_DIR
常量(或等效)以便我可以在任何地方使用它?
我尝试将其作为应用程序配置参数
'params'=>array(
'upload_dir'=>Yii::app()->baseUrl . '/images/uploads/',
),
但在配置文件中使用Yii::app()->baseUrl
cannott。
答案 0 :(得分:12)
您可以在致电index.php
之前和Yii::createApplication
之前Yii::app()->run()
内完成此操作:
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
然后,您可以像使用任何其他PHP常量一样使用它,例如echo UPLOAD_DIR
。
修改:当我在createApplication
之后和run
之前说过时,我的确意味着(同样,并非同时存在createWebApplication
和{{ {1}},这是前者的更通用版本。
所以如果你现在有
createApplication
你必须把它分成
Yii::createWebApplication(...)->run();
另一个选择是将另一个属性添加到您的应用程序类。例如,如果Yii::createWebApplication(...);
define ('UPLOAD_DIR', Yii::app()->baseUrl . '/images/uploads/');
Yii::app()->run();
目录中有class MyApplication
,那么您可以执行此操作:
protected/components
然后,您将以class MyApplication extends CWebApplication {
// ...other code...
public function getUploadDir() {
return $this->baseUrl.'/images/uploads/';
}
}
。