Rails with paperclip中的Docx content_type返回为application/zip。

6

有其他人看到过这个问题吗?

我正在使用rails 3和paperclip,当我上传.doc文件时一切正常,content_type是application/msword,但当我上传.docx文件时,content_type被保存为application/zip。

你有什么想法吗?


我并不100%确定,但我相信.docx实际上是一个包含一堆XML文件的压缩包; 所以从技术上讲,它是一个正确的压缩文件! - Steve Hill
@Stephen,谢谢,很有趣。你知道是否可以将docx转换为doc以进行预览吗? - AnApprentice
没有头绪 - 我想应该是可能的,但取决于您需要多完整的预览,您可能只需找到一个可以帮助的docx解析器? - Steve Hill
2个回答

7

具有讽刺意味的是,IE可能难以识别新的MS Office文件,而其他浏览器可以很好地识别它们。

为了使IE能够处理这些文件,您需要将mime类型添加到服务器配置中。在Rails中,可以在config / initializers / mime_types.rb中完成此操作。

Mime::Type.register "application/vnd.openxmlformats-officedocument.wordprocessingml.document", :docx
Mime::Type.register "application/vnd.openxmlformats-officedocument.presentationml.presentation", :pptx
Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx

如果您的应用程序通过Apache代理,并且Apache提供静态资源,则还必须根据http://bignosebird.com/apache/a1.shtml的说明配置新的MIME类型(并重新启动)。

我的MIME类型位于/etc/mime.types,但是如果您不确定,请尝试locate mime.types


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接