为了实现可上传 HTML 文件的实时预览,我需要帮助解码 base64 字符串。
当我将文件传递给输入元素并使用 FileReader()
读取它时,我得到一个base64编码的字符串。
我需要做什么才能将其转换为 HTML/TXT?
我已经找到了一些关于解码图片的东西,不幸的是这对我没有帮助。
handleFileUpload() {
this.file = this.$refs.file.files[0];
let reader = new FileReader();
reader.addEventListener("load", function() {
this.html = atob(reader.result);
}.bind(this), false);
reader.readAsDataURL(this.file);
},
输出:
data:text/html;base64,PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiDQp4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiDQp4bWxuczp4PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCINCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4NCjxtZXRhIG5hbWU9UHJvZ0lkIGNvbnRlbnQ9RXhjZWwuU2hlZXQ+DQo8bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgRXhjZWwgMTUiPg0KPGxpbmsgaWQ9TWFpbi1GaWxlIHJlbD1NY......
最佳答案
而不是 readAsDataURL
, 你应该使用 readAsText
, 这样您就可以得到文本而不是 blob。
handleFileUpload() {
this.file = this.$refs.file.files[0];
let reader = new FileReader();
reader.addEventListener("load", function() {
this.html = reader.result;
}.bind(this), false);
reader.readAsText(this.file);
},
关于javascript - VueJS解码base64 html字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58731866/