本文实例讲述了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程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!