如何定义一个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
.
编辑:当我说 aftercreateApplication
和 beforerun
时,我的意思是准确的(另外,并不是同时存在 acreateWebApplication
和 a 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/';
}
}
然后,您将作为Yii::app()->uploadDir
.