`
zccst
  • 浏览: 3319971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

yii使用CUploadedFile上传文件的一般方法(二)

 
阅读更多
作者:zccst

与前面(http://zccst.iteye.com/blog/1114948)的区别是不再依赖model。
也不再依赖yii自带的前端表单控件activeFileField。
感觉这样轻量级多了。

简言之:
1,form要带enctype="multipart/form-data"
2,文件控件只需写name即可。<input type="file" name="fileName" />
3,直接在php端使用$attach = CUploadedFile::getInstanceByName("fileName");即可。
不需要先用$fileName = $this->request->getParam('fileName');
注可以在前端写多个相同name的文件控件,这样在后端用$attaches = CUploadedFile::getInstancesByName("fileName");即可

一、前端代码
<form id="upForm" action="<?php echo $this->createUrl('repairUpload'); ?>" method="post" enctype    ="multipart/form-data">
    <input type="file" name="repair_attached_file" id="repair_attached_file" /><input type="submit" name="submitBtn" value="立即上传" />
</form>
<span id="upload_repairinfo_success" style="color:blue;"></span>



二、后端代码
public function actionRepairUpload(){
    $attach = CUploadedFile::getInstanceByName('repair_attached_file');
    $retValue = "";
    if($attach->size > 3*1024*1024){
        $retValue = "提示:文件大小不能超过3M";
    }else{
        $f = file_get_contents($attach->tempName);
        $a = new Attachment();
        $a->ref_type = "failParts";
        $a->data = $f;
        $a->file_path = $attach->name;
        $a->save();
        $retValue = $a->id;
    }
    echo $retValue;
}



关于CUploadedFile类的使用

通过 CUploadedFile::getInstance($model,'album_image');
或 $attach = CUploadedFile::getInstanceByName($inputFileName);

获取的对象$attach对象,有以下几个属性:
name
size
type
tempName

error
extensionName
hasError

常用方法有:
getName()
getSize()
getType()
getTempName()

getInstance()
getInstanceByName()
getInstances()
getInstancesByName()

saveAs()
reset()      Cleans up the loaded CUploadedFile instances.


如果您觉得本文的内容对您的学习有所帮助,您可以微信:

分享到:
评论

相关推荐

    yii实现使用CUploadedFile上传文件的方法

    以下是对CUploadedFile类的详细解释以及如何在Yii中实现文件上传的步骤。 1. **CUploadedFile类**: CUploadedFile是一个模型类,它封装了一个通过HTTP POST请求上传的文件的信息。当你在表单中包含一个`...

    Yii框架上传图片用法总结

    Yii 提供了 CUploadedFile 来上传文件,比如图片,或者文档。 官方关于这个类的介绍 : CUploadedFile represents the information for an uploaded file. Call getInstance to retrieve the instance of an uploaded...

    Yii实现用户注册登录、ajax、图片上传、modules编程基础例程(内置完整工程及使用说明)

    `CUploadedFile`类是Yii中处理文件上传的核心,它可以从HTTP请求中获取上传文件的信息。你需要创建一个表单,包含一个`enctype="multipart/form-data"`的`&lt;form&gt;`元素,然后在后端处理上传的文件,如保存到服务器、...

    yii使用activeFileField控件实现上传文件与图片的方法

    以上就是使用 Yii 框架中的 `activeFileField` 控件实现文件和图片上传的基本步骤。这个功能使得在 Yii 应用中处理用户上传的文件变得简单易行。通过适当的验证和处理,你可以确保上传的文件符合应用的要求,从而为...

    yii上传文件或图片实例

    CUploadedFile类是Yii框架提供的专门用于处理上传文件的类,它提供了一系列方法来操作上传的文件。 接下来,需要确定文件保存的绝对路径。这通过Yii::getPathOfAlias方法来获取webroot别名对应的路径,并拼接上具体...

    Yii+Framework+v1.1.10类参考中文手册(CHM版)

    14. **CUploadedFile**: 表示上传的文件对象,处理文件上传操作。 15. **CFlexiAuth**: 提供灵活的身份验证机制,支持多种认证策略。 手册中还涵盖了Yii的其他关键概念,如MVC架构、数据库访问(DAO和AR)、缓存...

    Yii框架实现图片上传的方法详解

    在Yii中,图片上传通常与ActiveRecord模型相结合,用于处理上传的文件验证和存储,控制器处理请求并调用模型方法,而视图则提供用户交互界面。 首先,我们来看模型(Model)部分。在提供的示例中,`Upload` 类继承...

    yii实现图片上传及缩略图生成的方法

    `CUploadedFile` 是 Yii 中用于处理上传文件的类,它可以提供关于上传文件的信息,如文件名、类型、大小等,并且可以保存文件到服务器。 6. **Yii::import**: `Yii::import()` 方法用于引入类文件。在这里,它...

    Yii+upload实现AJAX上传图片的方法

    本文实例讲述了Yii+upload实现AJAX上传图片的方法。分享给大家供大家参考,具体如下: 控制器代码: /** * get ajax uploaded files. */ public function actionGetAjax(){ $model=new Attachment();//加载附件...

    Yii结合CKEditor实现图片上传功能

    `UploadForm` 类通过 `rules()` 方法定义了文件上传的验证规则,如文件类型(`types`)和大小限制(`maxSize`)。如果文件不符合这些规则,验证将失败并返回错误信息。 `mkhtml` 函数用于构建返回给 CKEditor 的 ...

Global site tag (gtag.js) - Google Analytics