Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tuananh/63aa569531839c920e9cfe472eb17e35 to your computer and use it in GitHub Desktop.
Save tuananh/63aa569531839c920e9cfe472eb17e35 to your computer and use it in GitHub Desktop.
Check mime type from base64 string in Node.js
const fileType = require('file-type')
const base64String = 'iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAhOAAAITgBRZYxYAAAABxpRE9UAAAAAgAAAAAAAAAXAAAAKAAAABcAAAAWAAABW85tpoQAAAEnSURBVGgF7JbLDYMwDIYZoSN0pI7QUdikI+QESAXJozACR6SCRO2IHIBgnIRHKhUpQsSO/fFjnCRJwDWAun3exbOvsldX5oBjYAaQH/nTuoC0fkv7Kn8gnGIAOXhjUxTHj8BhFSXBUQfCGmh9p3iHwLdFcUdQ2BPWEgsoj4OG665Ug5igsSSZKLaTvaF86zQCS1dm6U4wji+YpQK8pcvYERyTsd3DKRblX1IxM9cpPH9poeJjDTupcmQJbdb42CXO+umkwjRsV0HF4EjVAmKDtZqpwQcElarm7WfdgGhnihy6nqgdu8pGzInaOBl6+PH+7AZIeFdabTomChecBcbm0cfa2PryloC6b1+9XW9Bzu16e8dJmBsif4YkckBrff+hz/pqP6n0FwAA//85LScuAAAA+0lEQVTV1u0NgyAQBuAboSN0pI7QUdykI/ALSaoJozgCP5tUE8tL0FiQSNNWORM/IEQfLucB9U09cjuJGxhetmjNLNqahlbeOKHhpeddXTmh4aVRixMnNLyEw6IFE7hwYFyGtr5wQMM5oz28Kxluwd0b2KOLjnYU5WkGNtKl1mw9GaP7Q6mzhZvC0sTAFWGXHaXVbVeXl8DUc9/IqoxoyyplXO0/enl3y/WqbKPzuIh/GOFwHj7H9/o5TXYOh9Cw7avKv8uh3qwSISynjQKPlemXPynel1w4clC5Y/ARC/92kyV2wYaTwjYROegrzVb6aIzD+Hl7Gb4ws/0Cqd8IYgt7isgAAAAASUVORK5CYII='
const mimeInfo = fileType(Buffer.from(base64String, 'base64'))
console.log(mimeInfo)
// output: { ext: 'png', mime: 'image/png' }
@EF3178
Copy link

EF3178 commented Jan 26, 2021

does not work. Error : "fileType is not a function"

@sarmadfaheem95
Copy link

you can use fileType.fromBuffer()

@iammateus
Copy link

Thanks for the gist it showed me the right track.

I'm sharing what worked from me:

const { fromBuffer } = require('file-type')
const getFileData = async () => {
const mimeInfo = await fromBuffer(Buffer.from(fileData, 'base64'))
console.log(mimeInfo);
}

@RaviPabari
Copy link

Thanks for the gist it showed me the right track.

I'm sharing what worked from me:

const { fromBuffer } = require('file-type') const getFileData = async () => { const mimeInfo = await fromBuffer(Buffer.from(fileData, 'base64')) console.log(mimeInfo); }

Thanks 👍 This worked for me.

@tapan-thapa
Copy link

Working example for me.

import {fileTypeFromBuffer} from 'file-type';

const getFileData = async (fileData) => {
const mimeInfo = await fileTypeFromBuffer(Buffer.from(fileData, 'base64'))
console.log(mimeInfo);
}

let fileData = "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";

getFileData(fileData);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment