Yii Framework 开发教程(15) UI 组件 MultiFileUpload示例
来源:互联网 发布:尼康调色软件 编辑:程序博客网 时间:2024/06/10 01:35
CMultiFileUpload 用于上传文件,支持一次同时上传多个文件。这个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 GUIreturn array(//upload directory'uploadDir' => 'upload/',);
在代码中可以通过Yii::app()->params['uploadDir'] 来访问这个参数,对于这个简单的例子,你也可以直接使用upload/ 做为固定的常量而无需定义Application的参数params.
本例不需使用Model,我们定义View如下:
<div 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), )); ?> <div class="row submit"> <?php echo CHtml::submitButton('Upload'); ?> </div><?php $this->endWidget(); ?></div><!-- 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>
使用CMultiFileUpload上传扩展名为jpg|png 的文件,CMultiFileUpload可以通过配置定义一些选项,具体可以参考
修改其对应的Controller/Action。
class SiteController extends CController{/** * Index action is the default action in a controller. */public function actionIndex(){if(isset($_FILES['files'])){// delete old filesforeach($this->findFiles() as $filename)unlink(Yii::app()->params['uploadDir'].$filename);//upload new filesforeach($_FILES['files']['name'] as $key=>$filename)move_uploaded_file($_FILES['files']['tmp_name'][$key],Yii::app()->params['uploadDir'].$filename);}$this->render('index');}/** * @return array filename */public function findFiles(){return array_diff(scandir(Yii::app()->params['uploadDir']),array('.', '..'));}}
Action方法首先删除upload目录下的文件,然后将上传的文件存放到该目录下。
本例下载
- Yii Framework 开发教程(15) UI 组件 MultiFileUpload示例
- Yii Framework 开发教程(15) UI 组件 MultiFileUpload示例
- Yii Framework 开发教程(11) UI 组件 ActiveForm示例
- Yii Framework 开发教程(12) UI 组件 ClipWidget示例
- Yii Framework 开发教程(13) UI 组件 ContentDecorator示例
- Yii Framework 开发教程(14) UI 组件 MaskedTextField示例
- Yii Framework 开发教程(16) UI 组件 StarRating示例
- Yii Framework 开发教程(17) UI 组件 TabView示例
- Yii Framework 开发教程(18) UI 组件 TextHighlighter示例
- Yii Framework 开发教程(19) UI 组件 TreeView示例
- Yii Framework 开发教程(20) UI 组件 Captcha示例
- Yii Framework 开发教程(21) UI 组件 自定义Captcha示例
- Yii Framework 开发教程(11) UI 组件 ActiveForm示例
- Yii Framework 开发教程(12) UI 组件 ClipWidget示例
- Yii Framework 开发教程(13) UI 组件 ContentDecorator示例
- Yii Framework 开发教程(14) UI 组件 MaskedTextField示例
- Yii Framework 开发教程(16) UI 组件 StarRating示例
- Yii Framework 开发教程(17) UI 组件 TabView示例
- 异常向量表
- strip命令用法
- 为什么要使用JavaScript(中文:重思JavaScript的好与坏)中英对比版本
- "现代篮球之父"
- 构造函数不能是虚函数的原因
- Yii Framework 开发教程(15) UI 组件 MultiFileUpload示例
- 国内网友设计诺基亚Lumia 930概念机
- 详解在IOS后台执行
- 汉武大帝经典台词
- 在iphone上创建小型服务器,并且让其处于后台的时候服务器仍然处于运行状态
- UIApplication对象及其代理UIApplicationDelegate[转]
- 学习编程技术的成长之路
- Memcached repcached同步
- 取消自动获取焦点(默认进来焦点到edittext),取消进入呼出软件盘