【问题标题】:mime-type autodetection of .js file fails for http upload in firefox.js 文件的 mime 类型自动检测在 firefox 中的 http 上传失败
【发布时间】:2011-06-15 03:35:42
【问题描述】:

我正在使用 http 上传将 javascript 文件传输到服务器。但是,firefox 会发送 mime 类型设置为“x-c”的内容。 Opera 11 更好地假设 'application/x-javascript' 但仍然不正确。 由于我更愿意避免服务器端 mime 类型检测,是否有机会覆盖特定文件扩展名(即“.js”)的 mime 类型检测或为浏览器算法提供提示?

理想的解决方案是跨浏览器(至少应支持 ff 3.6、ie8、chrome 8)。但是,作为第一步,仅限于 Firefox 的解决方案也将受到欢迎。

平台详情: ff 3.6.13 on winxp sp3

上传文件: jquery 1.4.4(未压缩和缩小版本),基本测试文件 所有文件都有 .js 扩展名

提前感谢您的努力。

最好的问候,卡斯滕

【问题讨论】:

  • 这需要在服务器端解决。你在那里使用什么语言?
  • perl 和 plsql。 Web 应用程序由 apache/mod_perl 提供服务。
  • 大家好,同时我已经诉诸于文件扩展名对的服务器端映射,并检测到 mime 类型到所需的 mime 类型,可能稍后扩展域以包含用户代理阶段。

标签: javascript html firefox forms upload


【解决方案1】:

现在使用 html5,您可以使用 JavaScript File API 读取文件属性,这样您就可以检查 MIME 类型、名称或文件大小。不幸的是,它目前仅在 Firefox 和 Chrome 中可用。

<input type="file" name="file" id="file" />

var file = document.getElementById('file').files[0];

然后您可以使用

检查文件属性
file.name // The file name
file.size // The file size in bytes
file.type // The MIME-Type Eje:'audio/mp3'

【讨论】:

  • 感谢您的解决方案。但是,ie 和 chrome 支持仍然是强制性的,并且 safari 加入了目标客户的圈子。无论如何,文件 api 似乎是要走的路(尽管我们选择了服务器端方案)。问候,卡斯滕
猜你喜欢
  • 2011-08-06
  • 2011-06-03
  • 2013-04-17
  • 2018-09-11
  • 2011-12-14
  • 2012-10-09
  • 2014-02-20
  • 2010-09-10
  • 2011-07-13
相关资源
最近更新 更多