本文实例讲述了Yii框架上传图片用法。分享给大家供大家参考,具体如下:
Yii 提供了 CUploadedFile 来上传文件,比如图片,或者文档。
官方关于这个类的介绍 :
上传文件,要用到MVC三个层面。
.
1、 模型层面 M ,把一个字段在rules方法里设置为 file 属性。
true,'types'=>'jpg,png,gif,doc,docx,pdf,xls,xlsx,zip,rar,ppt,pptx',//上传文件的类型
'maxSize'=>1024*1024*10,//上传大小限制,注意不是PHP.ini中的上传文件大小
'tooLarge'=>'文件大于10M,上传失败!请上传小于10M的文件!'
),
2、视图层View,这里需要用到CHtml::activeFileField 来生成选择文件的button,注意是上传文件,所以在该标单中enctype应该设置为: multupart/form-data
PHP;">
beginWidget('CActiveForm',array(
'id'=>'link-form','enableAjaxValidation'=>false,'htmlOptions' => array('enctype'=>'multipart/form-data'),)); ?>
PHP;">
labelEx($model,'url'); ?>
error($model,'url'); ?>
3、控制层 C
attributes=$_POST['Link'];
if(empty($_POST['Link']['name'])){
$model->name = $model->url;
}
$file = CUploadedFile::getInstance($model,'url');
//获得一个CUploadedFile的实例
if(is_object($file)&&get_class($file) === 'CUploadedFile'){
// 判断实例化是否成功
$model->url = './assets/upfile/file_'.time().'_'.rand(0,9999).'.'.$file->extensionName; //定义文件保存的名称
}else{
$model->url = './assets/upfile/noPic.jpg';
// 若果失败则应该是什么图片
}
if($model->save()){
if(is_object($file)&&get_class($file) === 'CUploadedFile'){
$file->saveAs($model->url); // 上传图片
}
$this->redirect(array('view','id'=>$model->lid));
}
}
更多关于Yii相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
原文链接:https://www.f2er.com/php/20089.html