如何从base64字符串获取MIME类型?

时间:2019-06-13 08:58:54

标签: javascript base64 mime-types

我的base64字符串看起来像NOT OK。 我尝试通过浏览器下载此文件。因此,

  1. 我通过函数将其转换为blob:
NS
  1. 通过"UklGRkAdEQBXQVZFZm10IBIAAAABAAEAg..."从blob创建URL
  2. 模拟具有创建的URL的 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; } 标签的点击。

Mozilla Firefox可以识别文件类型,并提供具有正确扩展名的文件下载,这很好,但是Chrome可以下载txt文件,而与实际文件类型无关,这是有问题的。

创建blob文件时,我可以设置文件类型,Chrome可以正常运行,但是我不知道如何从base64定义正确的MIME类型。

1 个答案:

答案 0 :(得分:0)

读取base64的第一个字符。

content.charAt(0)

并保留一个具有以下值的开关盒以获取类型

'/':jpg

'i':png

'R':gif

'U':webp