Обрабатывать содержимое файла base64 во что-то просматриваемое - PullRequest
0 голосов
/ 16 ноября 2018

Я просто застрял на некоторое время из-за недостатка знаний в некоторых основных областях.У меня есть приложение, написанное на vue.js, и есть внешняя служба, которая в какой-то момент отправляет мне строку base64, представляющую документ pdf / img / txt (что угодно).Я пытаюсь показать содержание этого документа моему пользователю, но не могу понять, как это сделать.То, чего я добиваюсь сейчас - это получение URL.

async downloadPdf() {
    let res = await this.$store.dispatch('pdf/getBase64String')
    let base64String = res.status === 'ok' ? res.data : ''
    this.downloadUrl = 'data:application/pdf;base64,' + base64String
    // downloadUrl bind href on a button in my page
}

Как только я установил значение href с помощью этой переменной downloadUrl, Chrome откроет мне новую вкладку, но останется пустым и будет бесконечно загружаться.Я думаю, это не очень хороший способ.Я также пытался с new Blob, new FileReader и так далее, но безуспешно.Поэтому я ищу правильный способ справиться с такой вещью: просмотр содержимого документа из строки base64

1 Ответ

0 голосов
/ 16 ноября 2018

Попробуйте скачать:

async downloadPdf() {
    let res = await this.$store.dispatch('pdf/getBase64String')
    let base64String = res.status === 'ok' ? res.data : ''
    this.downloadUrl = 'data:application/pdf;base64,' + base64String
    // downloadUrl bind href on a button in my page
    open(this.downloadUrl);
    // or, if it is not encode
    open(btoa(this.downloadUrl));
}
...