Yii上传文件头像详解(二)

作者: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.

文章来源于:

http://zccst.iteye.com/blog/1271104

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值