html
<form enctype="multipart/form-data" id="oForm">
<input type="file" name="file" id="file" onchange="readAsDataURL()" />
<input type="button" value="提交" onclick="doUpload()" />
</form>
<div>
<img alt="" id="img"/>
</div>
script
function doUpload() {
var data = $('#img').attr('src');
$.post('1.php',{data:data},function(res){
console.log(res)
});
}
function readAsDataURL(){
//检验是否为图像文件
var file = document.getElementById("file").files[0];
if(!/image\/\w+/.test(file.type)){
alert("看清楚,这个需要图片!");
return false;
}else{
var reader = new FileReader();
//将文件以Data URL形式读入页面
reader.readAsDataURL(file);
reader.onload=function(e){
var result=document.getElementById("img");
//显示文件
result.src= this.result ;
}
}
}
php
$base64 = $_POST['data'];
$arr = explode(',',$base64);
$base64Str = $arr[1];
$ext = base64Ext($arr[0]);
$file = base64_decode($base64Str);
$name = time();
$r = file_put_contents('./'.$name.'.'.$ext, $file);
if($r){
echo 1;
}else{
echo 2;
}
// 传入base64前部分带有照片后缀的字符串
function base64Ext($str){
$step1 = explode('/', $str);
$step2 = explode(';', $step1[1]);
return $step2[0];
}