二进制流 ajax 实现图片上传
ajax图片上传
//获取整个form表单的id;
var upload = document.getElementById('uploadForm'); //jquery发送FormData var fb = new FormData(upload); //如果追加一个 fb.append('demo','this is a demo'); $.ajax({ url: "?r=weather/img", type: "POST", data: image, dataType: 'json', //以jsonp类型返回 processData: false, //告诉jquery不要发送数据 contentType: false, //不要射中content-type });
php
//如果采用二进制流的形式上传图片 //需要在相应的控制器中获取 $tmp_name = $_FILES['img']['tmp_name']; //然后采用 $path = file_get_contents($tmp_name); //获取临时文件的路径,并解析称为字符串的形式 //为了安全起见,对路径进行加密 $image = base64_encode($path); //在 file_get_contens 和 base64_encode 之间 可能会丢失一些数据 ,所以在base64_decode之前 要进行匹配 ,要不然会导致数据不正确 $path = str_replace (' ','+',$image); $image = base64_decode($path); //解密 file_put_contents('./123.png',$image); //放入到文件中,现在则是图片啦
//然后 根据自己的需要可以入库。。。。