JS 上传图片转换成二进制流base64

时间:2021-10-06 18:55:02

accept可限制上传所选文件是什么类型

<input type="file" style='display: none;' id="image_upload" accept="image/jpeg, image/png, image/jpg" >
 1    var fileInput = document.getElementById("image_upload");  2     //选择文件
 3     fileInput.addEventListener('change',function(){  4         //如果未传入文件则中断
 5         if(fileInput.files[0] == undefined){  6             return;  7  }  8         
 9         var file = fileInput.files[0]; 10         
11         //FileReader可直接将上传文件转化为二进制流
12         var reader = new FileReader(); 13         reader.readAsDataURL(file);//转化二进制流,异步方法
14         reader.onload = function(){//完成后this.result为二进制流
15             console.log(this.result); 16             
17             //页面显示文件名
18             $("#name").html(file.name); 19             
20             var base64Str = this.result; 21             var startNum = base64Str.indexOf("base64,"); 22             startNum = startNum*1 + 7; 23             //去除前部格式信息(如果有需求)
24             var baseStr = base64Str.slice(startNum); 25             
26             //临时存储二进制流
27             $("#tempName").val(baseStr); 
28

29     }
30   })