/react-native-file-type

React Native: Detect the file type of a Buffer/Uint8Array by reading from Local Storage

Primary LanguageJavaMIT LicenseMIT

PRs Welcome

ReactNative - File Type (Android/iOS)

If this project has helped you out, please support us with a star 🌟

ReactNative: Detect the file type of a Buffer/Uint8Array by reading it from device (Android/iOS/Widnows) file system

This library is a React Native wrapper around sindresorhus/file-type node module.

The file type is detected by checking the magic number of the buffer.

sindresorhus/file-type: fileType(buffer) API, accepts a buffer of binary file data in order to determine it's meta data. Please find below usage for the same:

const readChunk = require('read-chunk');
const fileType = require('file-type');
const buffer = readChunk.sync('unicorn.png', 0, 4100);

fileType(buffer);
//=> {ext: 'png', mime: 'image/png'}

We have created this library for the ease of use. Based on local storage path provided we internally use RNFS to read file and js-base64 to convert data into Uint8Array buffer which is expected by sindresorhus/file-type: fileType(buffer) API

fileType('local-storage-path')

Before we dive into on how to use this library. We would like to thank all the contributor of sindresorhus/file-type for providing such a awesome nice, cool library

Install

npm install react-native-file-type

Internally we are using RNFS to read file. You need to add this library to your project, please follow installation steps RNFS

💻 Usage

import fileType from 'react-native-file-type'

fileType('local-storage-path').then((type) => {
    //Ext: type.ext
    //MimeType: type.mime
})

✨ Credits

🤔 How to contribute

Have an idea? Found a bug? Please raise to ISSUES. Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.

💫 Where is this library used?

If you are using this library in one of your projects, add it in this list below. ✨

📜 License

This library is provided under the Apache License.

RNFileType @ prscX

💖 Support my projects

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

  • Starring and sharing the projects you like 🚀

  • If you're feeling especially charitable, please follow prscX on GitHub.

    Buy Me A Coffee

    Thanks! ❤️
    prscX.github.io
    </ Pranav >