YII 用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>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值