简体   繁体   English

我如何从 base64 字符串或文件 uri 或字节数组中获取实际文件类型?

[英]how can i get actual file type from base64 String or file uri or bytearray in react native or js?

i want to check actual file type from base64 string or byte array.我想从 base64 字符串或字节数组中检查实际文件类型。

for example if i renamed extension of file from jpg to txt or something then it should give me original mime type of file.例如,如果我将文件扩展名从 jpg 重命名为 txt 或其他内容,那么它应该给我原始的 mime 类型的文件。 is there any idea how to do it for js or react.有什么想法如何为 js 做这件事或做出反应。

i tried using buffer and blob but it only returns Bytearray.我尝试使用缓冲区和 blob,但它只返回 Bytearray。 here is the code,这是代码,

let file = "ZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCxkR1Z6ZEFvPQ==";
     let buffer = Buffer.from(file,'base64').toJSON();
      console.log(file,buffer)

You have to transform the base64 to a Blob object, and the easiest way is to use the fetch API for that.您必须将 base64 转换为 Blob object,最简单的方法是使用fetch API

 const base64Image = 'data:image/png;base64,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' fetch(base64Image).then( async (res) => this.document.getElementById('image').src = window.URL.createObjectURL(await res.blob()) )
 <,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width. initial-scale=1.0"> <title>Document</title> </head> <body> <img id="image" /> </body> </html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM