Thanks to visit codestin.com
Credit goes to gitcode.com

mime4cj:基于 mime-db 的 MIME 类型处理工具项目

MIME格式解析库

分支11Tags1

mime4cj

介绍

用于 MIME 类型信息的 API

特性

  • 🚀 支持 所有mime-db类型
  • 🚀 支持 无额外依赖

架构

源码目录

.
├── README.md
├── doc
├── test
└── src
  • doc存放库的设计文档、提案、库的使用文档
  • test存放用例
  • src存放库源码目录

接口说明

主要是核心类和成员函数说明,详情见 API

使用说明

编译(win/linux)

cjpm build

示例

完整版(800+ MIME 类型,1,000+ 扩展名)

import mime.*

MIME.getType('txt')                     // ⇨ 'text/plain'
MIME.getExtension('text/plain')         // ⇨ 'txt'

精简版

MIME_LITE是轻量级替代版本,移除了非官方类型(如 "prs."、"x-" 和 "vnd.*" 前缀的 MIME 类型)

import MIME.*

MIME_LITE.getType('txt')                     // ⇨ 'text/plain'
MIME_LITE.getExtension('text/plain')         // ⇨ 'txt'

MIME.getType(pathOrExtension)

使用指定文件路径扩展名获取MIME类型

MIME.getType('js')             // ⇨ 'text/javascript'
MIME.getType('json')           // ⇨ 'application/json'

MIME.getType('txt')            // ⇨ 'text/plain'
MIME.getType('dir/text.txt')   // ⇨ 'text/plain'
MIME.getType('dir\\text.txt')  // ⇨ 'text/plain'
MIME.getType('.text.txt')      // ⇨ 'text/plain'
MIME.getType('.txt')           // ⇨ 'text/plain'

若extension未检测到或未经验证 返回None

MIME.getType('foo/txt')         // ⇨ None
MIME.getType('bogus_type')      // ⇨ None

MIME.getExtension(type)

根据指定的 MIME 类型获取对应的文件扩展名,自动忽略字符集参数(常见于 Content-Type 头信息)

MIME.getExtension('text/plain')                // ⇨ 'txt'
MIME.getExtension('application/json')          // ⇨ 'json'
MIME.getExtension('text/html; charset=utf8')   // ⇨ 'html'

MIME.getAllExtensions(type)

获取指定 MIME 类型对应的所有文件扩展名

MIME.getAllExtensions('image/jpeg')  // ⇨ [ 'jpeg', 'jpg', 'jpe' ]

自定义Mime对象

默认mime对象不可更改,创建自定义mime对象。

let customTypes : HashMap<String,Array<String>> = HashMap()
let mime = Mime(customTypes)

每个参数都会被传递给下方的 define() 方法。例如,Mime(standardTypes, otherTypes) 等同于 Mime().define(standardTypes).define(otherTypes)

定义type->extensions映射

定义 MIME type -> extensions。

尝试将类型映射到已定义的扩展名时会抛出错误,除非将 force 参数设为 true。

...
mime.define(HashMap([('text/x-abc', ['abc', 'abcd'])]))

mime.getType('abcd')             // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc')  // ⇨ 'abc'

约束与限制

在下述版本验证通过:

编号 依赖构建工具 版本号
1 cjc v1.1.3

开源协议

本项目基于 MIT License,请自由享受和参与开源。

参与贡献

欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。

贡献者:@chenyunda218

项目介绍

MIME格式解析库

定制我的领域