王嘉明的专栏

本人是个新人在不断解决问题中记录解决的方式,算是笔记,也算是对有需要的人的帮助吧...

yii上传图片

首先在model里面设置rule

array('img_path','file','types'=>'jpg,gif,png','maxSize'=>1024 * 1024 * 1,'tooLarge'=>'上传文件超过 1MB,无法上传。','allowEmpty'=>true,),//图片是否为必填项可以ture和false

先来view层的from的代码

<?php echo $form->labelEx($model,'img_path'); ?>

<?php echo CHtml::activeFileField($model,'img_path'); ?> //显示上传图片的按钮和框

<?php if(!$model->isNewRecord){?>//如果为编辑的话,显示图片

     <?php if($model->img_path){?> 
             <?php echo  CHtml::image(Yii::app()->request->baseUrl.'/'.$model->img_path,'图片的说明',array('width'=>'20%')); ?>//显示图片
     <?php }?>
                   <input type="hidden" name="img_path2" id="hiddenField"    value="<?php echo $model->img_path;?>"/>//存在依旧要获得原来的图片路径,否则会出现信息丢失
<?php }?>
<?php echo $form->error($model,'img_path'); ?>

下面为control层

$model->img_path=CUploadedFile::getInstance($model,'img_path');//获得上传的图片
if($model->img_path)
{
$basedir = dirname(yii::app()->basePath);//确定根目录
$uploaddir= $basedir.'/uploads/links/'; //确定要存的目录
$newimg = time().'_'.rand(1, 9999).'.'.$model->img_path->extensionName;//根据时间戳重命名文件名,extensionName是获取文件的扩展名
$uploadfile = $uploaddir.$newimg;
$filedir='uploads/links/'.$newimg;
$model->img_path->saveAs($uploadfile);//在服务器上的的路径保存
$model->img_path = $filedir;//要存入的数据库的路径
}
else
{
$model->img_path = $_POST['img_path2'];//这个是当编辑以后获得的img_path2的路径
}

下面是view的显示代码

array( 
'header'=>'图片',
'type'=>'raw',
'value'=>'CHtml::link(CHtml::image(Yii::app()->request->baseUrl."/".$data->img_path,"图片的说明",array("width"=>"200px","height"=>"200px")))', //在这设置显示的图片的大小
            ),
),

阅读更多
文章标签: yii 图片上传
个人分类: yii
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

yii上传图片

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭