js获取base64格式图片预览上传并用php保存到本地服务器指定文件夹
html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input id="load" type="file" onchange="upload(this.files)" name="myfile"/> <div id="dd"></div> <script src="jquery-1.9.1.min.js"></script> <script> function upload(f){ var str = ""; var imgtype=""; var gs=$("#load").val(); //获取图片url var src=""; imgtype = gs.toLowerCase().split('.');//截取图片格式 png,jpg,是一个数组 imgtype =imgtype[1];//选取 for(var i=0;i<f.length;i++){ var reader = new FileReader(); reader.readAsDataURL(f[i]); reader.onload = function(e){ src=e.target.result;//base64图片 str+="<img src='"+e.target.result+"'/>"; $("#dd").html(str); //预览图片 $.ajax({ url:"chul.php", type:"post", data:{ src:src, imgtype:imgtype }, success:function(data){ console.log(data) } }) } } } </script> </body> </html>
php:
<?php header('Content-type:text/html;charset=utf-8'); //转换base64图片 必须手动建一个img文件夹 define('UPLOAD_DIR', 'img/'); $img = $_POST['src']; $imgtype=$_POST["imgtype"]; //判断图片格式类型 if($imgtype=="png"){ $img = str_replace('data:image/png;base64,', '', $img); } if($imgtype=="jpg"){ $img = str_replace('data:image/jpeg;base64,', '', $img); } $img = str_replace(' ', '+', $img); $data = base64_decode($img); //判断图片格式类型 if($imgtype=="png"){ $imgurl = UPLOAD_DIR . uniqid(). '.png'; } if($imgtype=="jpg"){ $imgurl = UPLOAD_DIR . uniqid(). '.jpg'; } echo $img; //把图片写入文件中 $success = file_put_contents($imgurl, $data); ?>