【发布时间】:2014-05-28 20:43:14
【问题描述】:
我们使用系统中的 rails helper file_field 为 pdf 文档上传文件。我们从 rails 2 开始,现在 rails 3 大约一年。
在我们的数据库中查找 pdf content/type 到处都是。
我的理解是应该永远是application/pdf
但这里是我们收到的类型列表:
application/x-octetstream
application/octet
application/x-download
binary/octet-stream
text/html
application/application/pdf
application/download
application/x-download
text/javascript
text/html
text/csv
我现在唯一能看到正确设置内容类型的解决方法是检查文件主体(类似这样)
if (upload_doc_name_ext == "pdf") && (incoming_file.content_type != "application/pdf") && (incoming_file[0..10].match(/%PDF-/) != nil)
incoming_file.content_type = 'application/pdf'
end
还有其他想法吗?这是正常的吗,是不是还有什么奇怪的事情发生了?浏览器是否正常运行?
【问题讨论】:
-
所有具有
content_type不同值的文档实际上都是PDF吗?是否对传入文件进行任何验证以确保仅保存 PDF? -
是的,它们是 pdf,我浏览并检查了它们。
-
出于好奇 - 这种不正确的内容类型会导致什么问题? PDF 不会显示或无法以某种方式下载或管理?
-
我们存储内容类型以确定以后如何显示它以及是否转换它。解决方法工作正常,但这似乎是一个 html/rails 错误。
标签: ruby-on-rails ruby-on-rails-3 pdf content-type