yii2ajax传值,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代码:

$(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);

}

});

});

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值