$("#up_goods_pic").on('change',function(){
var file = this.files[0];
var url = webkitURL.createObjectURL(file);
/* 生成图片
* ---------------------- */
var $img = new Image();
$img.onload = function() {
//生成比例
var width = $img.width,
height = $img.height,
scale = width / height;
width = parseInt(800);
height = parseInt(width / scale);
//生成canvas
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
canvas.height = this.height;
canvas.width = this.width;
ctx.drawImage($img, 0, 0, width, height);
var base64 = canvas.toDataURL('image/jpeg');
//发送到服务端
$.ajax({
data:{
data:base64
},
url:"/shop/upload_goods_pic",
type:"POST",
dataType:"json",
succeed:function(data){
if(data.error === 0){
$("#goods_pic").append("<img src='"+data.file+"'/>");
}else{
alert(data.msg);
}
}
});
}
$img.src = url;
});
服务端
$base64_image_content = $this->input->post("data"); if (preg_match('/^(data:s*image/(w+);base64,)/', $base64_image_content, $result)){ $type = $result[2]; $new_file = "./".time().rand().".{$type}"; if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){ $this->goods_pic_model->add($new_file); die(json_encode(array("file"=>$new_file,"error"=>0))); } } die(json_encode(array("error"=>1)));