Моя строка base64 выглядит как "UklGRkAdEQBXQVZFZm10IBIAAAABAAEAg..."
.Я пытаюсь загрузить этот файл браузером.Итак,
- Я конвертирую его в BLOB-функцию:
b64toBlob: function(b64Data, sliceSize = 512) {
let byteCharacters = atob(b64Data);
let byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
let slice = byteCharacters.slice(offset, offset + sliceSize);
let byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
let byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
let blob = new Blob(byteArrays);
return blob;
}
Создание URL-адреса из блоба с помощью
URL.createObjectURL(this.b64toBlob(base64))
Эмуляция щелчка по тегу
<a>
с созданным URL-адресом.
Mozilla Firefox распознает тип файла и предлагает загрузить файл справильное расширение, и это хорошо, но Chrome предлагает загрузить TXT-файл независимо от реального типа файла, и это проблема.
Я могу установить тип файла при создании файла BLOB-объекта, и Chrome будет работать правильно, но яНе знаю, как определить правильный MIME-тип из base64.