Welcome 微信登录

首页 / 网页编程 / PHP / Yii+upload实现AJAX上传图片的方法

本文实例讲述了Yii+upload实现AJAX上传图片的方法。分享给大家供大家参考,具体如下:
控制器代码:
/*** get ajax uploaded files.*/public function actionGetAjax(){$model=new Attachment();//加载附件模型$tmpFile= CUploadedFile::getInstanceByName("image");//读取图像上传域,并使用系统上传组件上传$Directroy = Yii::app()->params["uploadPath"];//读取上传配置文件,我的配置是/uploads//创建文件存放路径$y = date("Y");$m = date("m");$d = date("d");$Directroy = $Directroy."/";$pathd = $Directroy.$y."/".$m."/".$d."/";Tool::makedir(dirname(Yii::app()->BasePath).$pathd); //创建文件夹,此处一定要加上dirname(Yii::app()->BasePath)不然可能会出错;if(is_object($tmpFile) && get_class($tmpFile)==="CUploadedFile"){$filename= time().rand(0,9);$ext= $tmpFile->extensionName;//上传文件的扩展名if($ext=="jpg"||$ext=="gif"||$ext=="png"){$big= $pathd . $filename . "_600." . $ext; //310缩略图$small = $pathd . $filename . "_310." . $ext; //310缩略图$thumb = $pathd . $filename . "_100." . $ext; //100缩略图$model->zat_thumb= $thumb; //缩略图}$uploadfile = $pathd . $filename . "." . $ext; //保存的路径$model->zat_url = $pathd . $filename . "." . $ext; //重新赋值$model->zat_file_name= $filename . "." . $ext;//文件名称$model->zat_title= $tmpFile->name;//文件标题$model->zat_file_type= $tmpFile->type;//文件类型$model->zat_file_size= $tmpFile->size;//文件大小$model->zat_image= 2;$model->zat_ip = Yii::app()->request->userHostAddress; //上传IP//print_r($uploadfile);}if($model->save()){$tmpFile->saveAs(dirname(Yii::app()->BasePath).$uploadfile);//保存到服务器if($ext=="jpg"||$ext=="gif"||$ext=="png"){$img = Yii::app()->image->load(dirname(Yii::app()->BasePath).$uploadfile); //使用image-Kohana图像处理库扩展$img->resize(600,600)->quality(85);$img->save(dirname(Yii::app()->BasePath).$big);//生成600缩略图$img->resize(310,310)->quality(85);$img->save(dirname(Yii::app()->BasePath).$small);//生成310缩略图$img->resize(100,100)->quality(85);$img->save(dirname(Yii::app()->BasePath).$thumb);//生成100缩略图}if($ext=="jpg"||$ext=="gif"||$ext=="png"){$str = json_encode(array("upfile"=>array("zat_id" => Yii::app()->db->getLastInsertID(), //取插ID"file" => $uploadfile,//原图"small" => $small,//310缩略图"thumb" => $thumb,//100缩略图)));}else{$str = json_encode(array("upfile"=>array("zat_id" => Yii::app()->db->getLastInsertID(),"file" => $uploadfile,)));}echo $str;}}
VIEW代码:
<input id="fileupload" type="file" name="image" multiple><script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.ui.widget.js"></script><script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.iframe-transport.js"></script><script src="<?php echo Yii::app()->baseUrl;?>/js/jquery.fileupload.js"></script><script>$(function () {$("#fileupload").fileupload({dataType: "json",url: "/Attachment/GetAjax",success: function (json) {$("#MemType_zmt_pic").attr("value",json.upfile.file);$("#images").attr("src",json.upfile.file);}});});</script>
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《PHP+ajax技巧与应用小结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。