Giter VIP home page Giter VIP logo

mimetypes's Introduction

MimeTypes

A simple lookup from file name/extension to MIME/media type and vice versa, generated from mime-db, which in turn is compiled from IANA, Apache and nginx's MIME types.
This is a source-only package, containing a single class, MimeTypes, which will be compiled into your library/application under the root namespace.

Installation

The easiest way to get it, is to install the source package from NuGet.org.

Otherwise you could just pull the source file from GitHub.

Usage

Lookup MIME/media type for a file name/extension

Get the MIME/media type for a file name/extension by using the MimeTypes.TryGetMimeType or MimeTypes.GetMimeType methods:

if (MimeTypes.TryGetMimeType("awesome-file.json", out var mimeType))
{
    // mimeType == "application/json"
}

MimeTypes.GetMimeType("awesome-file.json"); // "application/json"

When calling GetMimeType, if a mapping for the given file extension doesn't exist, it will fall back to MimeTypes.FallbackMimeType, which is set to application/octet-stream by default.

Lookup file extension by MIME/media type

To get all available file extensions for a MIME/media type, you can call MimeTypes.GetMimeTypeExtensions. This returns back an IEnumerable<string> of all the available files types for the specified MIME/media type.

mimetypes's People

Contributors

dependabot[bot] avatar gfoidl avatar khellang avatar martincostello avatar nikolaybobrovskiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mimetypes's Issues

Using MimeTypes in .net standard 2.0 Project triggers CS8370 Error

When adding MimeTypes to a .net standard 2.0 Project, Compile Error:

CS8370 "Feature 'nullable reference types' is not available in C# 7.3. Please use language version 8.0 or greater"

.net Standard 2.0 is unfortunately locked to max language level 7.3

Using Version 1.1.0 , which does not yet have the
#nullable enable
line works.

Add comments or change rootnamespace

Because you are using namespace $rootnamespace$ I currently cannot enable XML documentation in combination with treat warnings as errors. Since some things aren't commented.

Would it be possible to either add comments or change the namespace?

DNX support

It would be nice that this module supports DNX, so it can be used from CoreCLR assemblies.

Wrong MIME types for comic book formats

Independent of the file extensions, this library always returns application/x-cbr. This is incorrect, as there are specific MIME types for all the extensions, e.g. application/x-cbz or application/x-cb7.

To understand the impact, see the following issues in the Jellyfin project:

.

Here's a tl;dr: cbr (a.k.a. Rar) is a proprietary compression algorithm, so most FOSS eReaders will not accept it. ๐Ÿ™‚

Add support for jfif files

Hi,

Any chance the jfif extension could be added to the typeMap?
I believe it just has the mime type of image/jpeg.

Thanks!

What is up with version 2.4.1?

There is a NuGet package released with version 2.4.1 uploaded on 2023-02-21: https://www.nuget.org/packages/MimeTypes/2.4.1. It was released by Kristian Hellang, the owner of this Repository.

As of today, this repository does not contain a tag for version 2.4.1, no commits in 2023 and the code released is different from the code in this repository: Compare MimeTypes.cs.pp in this repo with contentFiles/cs/*/MimeTypes.cs.pp in Release 2.4.1.

The differences between the code released and the code in this repository are not backwards compatible. E.g. getting the MIME type for a file with ".mp4" extension returns "application/mp4" in v2.4.1 instead of "video/mp4".

What is up with this?

Could not add as a reference to Xamarin.mac Project

Hello,

I've tried using this library in a Xamarin.mac project but got the following error.
Is it normal?

Could not install package 'MimeTypes 2.4.0'. You are trying to install this package into a project that targets 'Xamarin.Mac,Version=v2.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

Throws "same key is already added exception"

There are duplicates on some of the extensions which fails the initialization of the dictionary:
( 'sub', 'image/vnd.dvb.subtitle' ),
( 'sub', 'text/vnd.dvb.subtitle' ),

and

( 'wmz', 'application/x-ms-wmz' ),
( 'wmz', 'application/x-msmetafile' ),

Explicit namespaces

Hello,

I try to use this package in Xamarin.Android, but I get build errors because of namespace issues.
image

If I edit the code file manually like this. it works:
image
I just prepended all the using statements at the top with "global::"

Another fix which works for me is moving the using statements out of the namespace declaration, like so:
image

If you could fix this one way or another, that would be awesome!

Regards,
labtox

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.