input标签file文件上传图片本地预览(转载)
<input type="file" name="img-up" id="img-up" value="" />
$("#img-up").on("change",function () { if(this.files[0]){ getImgBase64Data(this.files[0], function (result) { console.log(result); }); } }); function getImgBase64Data(file, callback) { var reader = new FileReader(); reader.onload = function (e) { callback(e.target.result); }; reader.readAsDataURL(file); // 读取完后会调用onload方法 }
方法二:
//取得该文件的url function getObjectURL(file) { var url = null ; if (window.createObjectURL!=undefined) { url = window.createObjectURL(file) ; } else if (window.URL!=undefined) { url = window.URL.createObjectURL(file) ; } else if (window.webkitURL!=undefined) { url = window.webkitURL.createObjectURL(file) ; } return url ; }
将base64的图片,转换回 file 对象
// base 64 转 blob let dataURLtoFile = function (b64Data,filename) { filename = filename || "test.png"; let mime = "image/png"; var bstr = atob(b64Data.replace(/^data:image\/(png|jpeg|jpg);base64,/, '')); var n = bstr.length; var u8arr = new Uint8Array(n); while(n--){ u8arr[n] = bstr.charCodeAt(n); } //转换成file对象 return new File([u8arr], filename, {type:mime}); //转换成成blob对象 //return new Blob([u8arr],{type:mime}); return blob; }
文章转自于 https://www.cnblogs.com/muamaker/p/6758219.html