用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 628|回复: 0
打印 上一主题 下一主题

Yii框架上传图片用法总结

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 05:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了Yii框架上传图片用法。分享给大家供大家参考,具体如下:
Yii 提供了 CUploadedFile 来上传文件,比如图片,或者文档。
官方关于这个类的介绍 :
CUploadedFile represents the information for an uploaded file.
Call getInstance to retrieve the instance of an uploaded file, and then use saveAs to save it on the server. You may also query other information about the file, including name, tempName, type, size and error.
public properties

      Property
      Type
      Description
      Defined By
   
   
      error
      integer
      Returns an error code describing the status of this file uploading.
      CUploadedFile
   
   
      extensionName
      string
      the file extension name for name.
      CUploadedFile
   
   
      hasError
      boolean
      whether there is an error with the uploaded file.
      CUploadedFile
   
   
      name
      string
      the original name of the file being uploaded
      CUploadedFile
   
   
      size
      integer
      the actual size of the uploaded file in bytes
      CUploadedFile
   
   
      tempName
      string
      the path of the uploaded file on the server.
      CUploadedFile
   
   
      type
      string
      the MIME-type of the uploaded file (such as "image/gif").
      CUploadedFile
   
实现上传文件,要用到MVC三个层面。
1、 模型层面 M ,把一个字段在rules方法里设置为 file 属性。
array('url',
    'file',  //定义为file类型
    'allowEmpty'=>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
beginWidget('CActiveForm', array(
'id'=>'link-form',
'enableAjaxValidation'=>false,
'htmlOptions' => array('enctype'=>'multipart/form-data'),
)); ?>
    labelEx($model,'url'); ?>
   
    error($model,'url'); ?>
3、控制层 C
$model=new Link;
if(isset($_POST['Link']))
{
  $model->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优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • yii上传文件或图片实例
  • Yii结合CKEditor实现图片上传功能
  • yii实现图片上传及缩略图生成的方法
  • yii使用activeFileField控件实现上传文件与图片的方法
  • yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
  • Yii2实现ajax上传图片插件用法
  • Yii+upload实现AJAX上传图片的方法
  • yii2高级应用之自定义组件实现全局使用图片上传功能的方法
  • yii2利用自带UploadedFile实现上传图片的示例
  • YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
  • Yii框架实现图片上传的方法详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则