File API在Firefox中为pdf文件返回“invalid / octet-stream”

时间:2015-09-11 12:39:19

标签: javascript firefox mime-types jquery-file-upload html5-filesystem

我正在进行文件上传,在浏览器中检查文件mime类型。它使用jQuery文件上传插件,除了一个用户外,无处不在。

由于某种原因,file.type(html5文件api)为pdf文件返回“ invalid / octet-stream ”(通常是“application / pdf”)。 Pdf文件很简单,可以在这台电脑上打开而没有任何问题。

环境:Windows 7和Firefox 40.不在Chrome或资源管理器中复制。

1 个答案:

答案 0 :(得分:1)

尝试删除(或重命名/移动,用于测试目的)受影响的Firefox MimeTypes.rdf中的文件profile folder

(在Windows下,这通常可以在类似于c:\ Users \ [name] \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ [some id] .default的路径下找到 - 或者只搜索“MimeTypes.rdf” ”。)

如果之后的PDF上传有效,则会遇到2007年首次报告的a Firefox bugbasically the same here,2006年报告)。简而言之,用户从中下载文件的任何网站都有可能在下载文件的扩展名中破坏MimeTypes.rdf文件 - 恶意或意外/不知情。

你可以做的事情:

  1. Vote for the Firefox bug!
  2. 快速修复以使其立即为一个用户工作:让用户删除他们的MimeTypes.rdf文件。 Firefox将在下次启动时创建一个新的“新鲜”版本,但这将清除用户随时创建的所有MIME类型/应用程序关联。此外,这只会在用户从其他网站下载下一个PDF文件之后才会有所帮助,该网站会再次破坏MimeTypes.rdf文件。
  3. 使用“用户代理”标头确定文件是否从Firefox上传。如果是这样且MIME类型与您希望接受的任何内容不匹配,请仔细检查文件名的扩展名,如果扩展名与您接受的文件类型(在您的情况下为“.pdf”)匹配,则无论如何都要接受该文件。 / LI>