关闭

yii上传图片

标签: yii图片上传
451人阅读 评论(0) 收藏 举报
分类:

首先在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")))', //在这设置显示的图片的大小
            ),
),

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2070次
    • 积分:70
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论