【问题标题】:automatic mimetypes in javascript node.jsjavascript node.js 中的自动 mimetypes
【发布时间】:2011-07-16 00:54:20
【问题描述】:

我正在使用 javascript 将文件上传到 aws s3,而 AFAIK 它们都需要一个 mimetype 才能正常运行。是否有一个脚本可以自动将文件名映射到我可以使用的 mimetypes?

编辑:如果亚马逊有办法自动处理模仿类型会更好。

【问题讨论】:

  • 我很确定浏览器会在内部确定文件 MIME 类型,可能是通过与浏览器和/或平台相关的规则。我不知道有什么方法可以让页面中的代码在该决定中发挥作用。
  • 哦等等——你是从节点做这个的......当然完全不同的事情:-)

标签: javascript node.js knox-amazon-s3-client


【解决方案1】:

https://github.com/broofa/node-mime 是一个外观不错的自动 mime 查找库。

【讨论】:

  • 啊,我们走了,谢谢,我正在写我自己的,真的应该改进我的谷歌fu
  • 截至 2012 年 6 月,该 repo 不再可用。
  • 这个库只是查看扩展名来推断MIME类型,如果扩展名错误,MIME也会出错。不安全取决于你用它做什么......
【解决方案2】:

npm install mime

require('mime')

var mimetype = mime.lookup('file.txt')

【讨论】:

  • 该死的,它们只是同步的吗? "content = fs.readFileSync(file, 'ascii')," 是的,这需要改变。
  • @tomwrong 带有readFileSyncload函数只加载require()上的配置文件,mime.lookup不使用它。
  • 这种情况,为什么lookup没有回调函数。请不要以错误的方式阅读此内容,我仍在学习 node.js,老实说无法理解“var mimetype = mime.lookup('file.txt')”之后的任何代码将如何执行,直到查找返回。
  • lookup 是同步的,因此在返回之前不会执行任何操作。不过不用担心,这只是一个简单的操作,使用它的应用程序代码可能会慢 10 倍。 github.com/broofa/node-mime/blob/master/mime.js#L62
【解决方案3】:

通过 Google 找到了这个问题,只是想通过查看文件扩展名来添加 MIME 类型检测根本不安全。我建议使用mmmagic,它实际上会查看数据以确定文件的 MIME 类型。

【讨论】:

猜你喜欢
  • 2010-12-18
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 2011-08-25
  • 2018-07-17
  • 2013-08-27
相关资源
最近更新 更多