通过 Node JS 使用文件内容确定 MIME 类型

2023-11-26

似乎所有流行的 Node.js MIME 类型库都只是使用文件扩展名,而不是通过查看文件来确定 MIME 类型。

有没有一种好方法可以使用 Node 跳转到文件并智能地确定文件的 MIME 类型,以防扩展名不存在?


确实感觉很可惜,最受欢迎的MIME模块只是将扩展映射到类型。

经过更深入的搜索,我发现了名为mmmagic,它似乎正在做你想做的事情。

请注意,从与MIME我留下了一个味道,那就是MIME原则上检测并不完全可靠,并且出现错误检测的可能性很小。

使用示例(取自their site):

  var mmm = require('mmmagic'),
      Magic = mmm.Magic;

  var magic = new Magic(mmm.MAGIC_MIME_TYPE);
  magic.detectFile('node_modules/mmmagic/build/Release/magic.node', function(err, result) {
      if (err) throw err;
      console.log(result);
      // output on Windows with 32-bit node:
      //    application/x-dosexec
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Node JS 使用文件内容确定 MIME 类型 的相关文章

随机推荐

  • 未找到从头文件链接到的头文件。

    我对 Nvidia 的 OpenCl Cuda 框架有疑问 但我认为这是一个gcc链接问题 The opencl hello world c示例文件使用以下头文件 include OpenCL common inc CL opencl h
  • 在unix中使用变量作为变量名的一部分[重复]

    这个问题在这里已经有答案了 我想将变量命名为a v 例如 v 可以是 2013 2014 我现在声明一个变量a v a v hI a 2013 should be Hi v 2014 so a v Hello a 2014应该是你好 我尝试
  • 列在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中

    显然 当使用 GROUP BY 子句时 非聚合函数的列应该成为 group by 子句的一部分 这里的问题是 我不能在 GROUP BY 子句中包含 HTTPADDRESS 和 DATEENTERED 列 另外 我不知道有什么函数可以为我提
  • “追随者”和效率

    我正在设计一个应用程序 该应用程序将涉及用户在 Twitter 意义上 关注 彼此的活动 但我对数据库 查询设计 效率不是很有经验 是否有管理此问题的最佳实践 需要避免的陷阱等 我认为如果没有正确完成 或者甚至可能 这可能会给数据库带来非常
  • 在聚合时将字符串转换为浮点数?

    在指定直方图聚合时 有什么方法可以将字符串转换为浮点数吗 因为我的文档中的字段是浮点数 但不会被 elasticsearch 解析 当我尝试使用字符串字段进行求和时 它会抛出下一个错误 ClassCastException org elas
  • 绘图标签中的 Upright mu:保留原始刻度字体

    我有一个我认为会更频繁发生的问题 然而 在互联网上搜索了一段时间后 我无法找到解决我的问题的方法 所以事情是这样的 对于使用 matplotlib pyplot 创建的绘图 我想将 SI 单位微米纳入我的 xlabel 中 然而 单位微米需
  • 加载异步资源后运行内联脚本

    我使用优化器测试了我的页面 它建议我使用async我使用的所有 CDN 源的属性 例如 要运行我使用的任何脚本 function 我也有内联的 JavaScript 代码script引用此类库的标签 但是 当我添加async如上所述 我在以
  • 查询检查postgresql数据库状态

    是否有任何查询来检查数据库状态 我只想知道它在远程主机上是否处于活动状态 那么 如果数据库正在运行以及其他数据库详细信息 是否有任何查询返回 200 OK https www postgresql org docs current stat
  • 切换大小写未显示正确的结果

    这是我的脚本 var marks 11 switch marks case marks lt 20 console log Yes Freaking Failed break case marks gt 20 console log Ahh
  • Keras 似乎在调用 fit_generator 后挂起

    我正在尝试适应 Keras 的实现SqueezeDet模型到一个新的数据集 对配置文件进行适当的更改后 我尝试运行训练脚本 但它似乎在调用后挂起fit generator 当我得到以下输出时 anaconda envs py35 lib p
  • EF4 Code First:如何仅更新特定字段

    如何仅更新实体上的某些字段 我有一个像这样的用户实体 public class User public string UserId get set public string PasswordHash get set public bool
  • 永久 PowerShell 变量

    有没有办法在 PowerShell 中定义变量 以便当我打开新的 PowerShell 窗口时 它会保持相同的值 我需要这个变量来保留其值 因为我需要时不时地重新启动我的服务器 并且我不想丢失这些值 储藏 variable export c
  • 为什么 xdebug 没有出现在 phpinfo() 中

    我正在尝试进行以下设置工作 Windows 7 64 位 XAMPP 1 7 4 XDebug php xdebug 2 1 0 5 3 vc9 x86 64 dll 当我从 Xampps 主页运行 phpinfo 时 XDebug 它没有
  • 使用go静态文件服务器时如何自定义处理找不到文件?

    所以我使用 go 服务器来提供单页 Web 应用程序 这适用于为根路由上的所有资产提供服务 所有 CSS 和 HTML 均已正确提供 fs http FileServer http Dir build http Handle fs 所以当网
  • 在 CouchDB 中按键返回唯一值

    有没有办法在 CouchDB 中执行以下操作 一种通过给定键返回唯一 不同值的方法 SELECT DISTINCT field FROM table WHERE key key1 key1 gt somevalue key1 gt some
  • 具有有关文件的自定义元数据的 ItemGroup

    我正在尝试创建一个 文件 任务项组 其中包含名为 TargetPath 的元数据属性 其中填充了文件的相对路径 Example 对于这些路径 D 测试 Blah exeD 测试 配置 fun configD Test en US my re
  • 未找到类异常 com.squareup.okhttp.logging.HttpLoggingInterceptor

    即使在添加依赖项并导入类之后 我仍然收到 java lang NoClassDefFoundError com squareup okhttp logging HttpLoggingInterceptor 有人可以帮忙吗 Gradle 构建
  • 在 Angular 中更新/合并 i18n 翻译文件

    我们最近决定为我们的应用程序支持多种语言 Angular 13 x 经过研究 我们决定使用angular localize看起来很适合我们的需求的包 一切似乎都在解决唯一的问题 即在后续的构建和更改中保持翻译文件最新 因此 请遵循 Angu
  • 取消 DataAdapter.Fill()

    设想 我们有一个附加到 DataAdapter 数据表 的 DataGridView 我们在单独的线程 使用 delegate 和 beginInvoke 中使用 adapter fill query datatable 将数据加载到数据表
  • 通过 Node JS 使用文件内容确定 MIME 类型

    似乎所有流行的 Node js MIME 类型库都只是使用文件扩展名 而不是通过查看文件来确定 MIME 类型 有没有一种好方法可以使用 Node 跳转到文件并智能地确定文件的 MIME 类型 以防扩展名不存在 确实感觉很可惜 最受欢迎的M