我的Rails 站点允许用户上传文件,我使用的是attachment_fu 插件。我有一个我允许的允许的 [MIME] 内容类型列表 - 标准图像格式、Office 文档、PDF 等。我有一个用户因为验证失败而无法上传任何 PDF 文档,查看日志attachment_fu 认为 MIME类型是“应用程序/x2x-下载”。用户浏览器是 Windows XP 上的 Firefox。当我尝试在 OS X 或 Safari 或 IE 6/7/8 上使用 Firefox 自己上传 PDF 时,它工作得很好。似乎只是她的浏览器的问题。
我在谷歌上搜索了这种 MIME 类型,但它似乎不存在。
从理论上讲,我可以忽略客户端告诉的 MIME 类型并尝试自己识别文件,也许会使用 file -b --mime-type
命令,但这似乎很笨拙。
另一个流行的 Rails 附件插件 Paperclip 本身不进行 MIME 识别,并且还尝试信任客户端浏览器。
大家怎么看?忽略客户端并 [尝试] 自己识别上传或尝试弄清楚为什么该用户浏览器首先设置了完全无效的 MIME 类型?
最佳答案
许多 3rd 方应用程序可以修改客户端 mime 类型设置(我在亚马逊的 MP3 下载器应用程序修改 mime 类型方面有自己的冒险经历),因此您的用户很可能有类似的东西(可能来自 x2x software 的东西)。
我建议坚持使用 mime/type 作为向用户传达有效和无效内容的一种方式,并在验证中使用 ruby filemagic 进行二次检查。
关于ruby-on-rails - 文件上传的 MIME 类型为 "application/x2x-download"- 那是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2359951/