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
立即学习“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如下:
beginWidget('CActiveForm',array('method' =>'post','htmlOptions'=>array('enctype'=>'multipart/form-data'),));
?>
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),));
?>endWidget();
?>
findFiles() as $filename): ?>
Yii::app()->baseUrl.'/'.Yii::app()->params['uploadDir'].$filename,array('rel'=>'external'));?>使用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 files
foreach($this->findFiles() as $filename)
unlink(Yii::app()->params['uploadDir'].$filename);
//upload new files
foreach($_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目录下的文件,然后将上传的文件存放到该目录下。

以上就是PHP开发框架Yii Framework教程(15) UI 组件 MultiFileUpload示例的内容,更多相关内容请关注PHP中文网(www.php.cn)!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号