var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function (e) { $('#imgLogoImg').attr('src', this.result); base64img = this.result; //alert(this.result); //就是base64 }
最近刚好做这个,在Stack Overflow上面发现的答案,很靠谱,粘贴到这里来居然被忽略,什么情况啊…… HTML代码: <form enctype="multipart/form-data"> <input type="file" @change="onFileChange">//点击这里上传图片 <p id="b64"></p>//这里展示生成的base64码 <img alt="" id="img" height="150">//这里展示图片预览 </form> Vue代码: export default { data () { return { fileinput:'' } }, methods: { onFileChange (e) { var files = e.target.files || e.dataTransfer.files; if (!files.length) return; this.createInput(files[0]); }, createInput(file){ var reader = new FileReader(); reader.onload = (e) => { $("#b64").html(reader.result); $("#img").attr('src',reader.result) } reader.readAsDataURL(file); } } }