PHP开发框架Yii Framework教程(15) UI 组件 MultiFileUpload示例2013-01-27 csdn mapdigitCMultiFileUpload 用于上传文件,支持一次同时上传多个文件。这个UI组件是基于jQuery Multi File Upload 插件。Yii 内置的很多UI组件都是基于JQuery,因此需要创建assets 目录用于存放动态生成的javascripts 等。所上传的文件的信 息可以通过$_FILES[widget-name]来访问,比如,CMultiFileUpload的name为”files” 所上传的文件信息可以通过$_FILES ["files"]来访问。此外包含CMultiFileUpload的Form属性需要设置enctype=multipart/form-data。本例创建 一个upload目录用于存放上传的文件。我们通过配置文件设置中个上传文件导入目录。修改/config/main.php 添加项目 代码
// application-level parameters that can be accessed // using Yii::app()->params["paramName"] "params"=>require(dirname(__FILE__)."/params.php"),
为Application添加一些参数,存放参数的文件为 config/param.php定义上传文件的目录如下:
// this contains the application parameters that can be maintained via GUI return array(//upload directory "uploadDir" => "upload/", );
在代码中可以通过Yii::app()->params["uploadDir"] 来访问这个参数,对于这个简单的例子,你也可 以直接使用upload/ 做为固定的常量而无需定义Application的参数params.本例不需使用Model,我们定义View如下:
<center class="form"> <?php $form=$this->beginWidget("CActiveForm",array("method" =>"post", "htmlOptions"=>array("enctype"=>"multipart/form-data"),)); ?> <?php $this->widget("CMultiFileUpload",array( "name"=>"files", "accept"=>"jpg|png", "max"=>3, "remove"=>"Remove", //"denied"=>"", message that is displayed when a file type is not allowed //"duplicate"=>"", message that is displayed when a file appears twice "htmlOptions"=>array("size"=>25),)); ?><center class="row submit"> <?php echo CHtml::submitButton("Upload"); ?> </center><?php $this->endWidget(); ?> </center><!-- form --><ul> <?php foreach($this->findFiles() as $filename): ?> <li><?php echo CHtml::link($filename, Yii::app()->baseUrl."/".Yii::app()->params["uploadDir"].$filename, array("rel"=>"external"));?></li> <?php endforeach; ?> </ul>