仅允许上载pdf

时间:2009-05-25 11:56:15

标签: ruby-on-rails pdf

如何更改此代码,以便我只允许上传pdf文件:

unless @file.content_type =~ /^image/
  errors.add(:file, "is not a recognized format")
  return false
end

3 个答案:

答案 0 :(得分:3)

当然,这段代码非常不安全。它依赖于浏览器发送文件以获得正确的MIME类型,并假设没有人发送被黑客入侵的请求。

坦率地说,除非你打开文件并解析它,知道什么是特定格式的有效文件,你不能确定上传的任何文件是特定类型。

答案 1 :(得分:2)

没有使用过,但pdf mime类型是application / pdf,所以应该只是:

unless @file.content_type =~ /^application\/pdf$/

答案 2 :(得分:2)

你必须:

  1. 接受上传;
  2. 尝试在某个库中打开PDF;
  3. 如果无法打开文件,请拒绝该文件。
  4. 您不能依赖浏览器为您提供的MIME类型。 only 方法是验证文件。您可以使用标记等检查格式,但最简单,最强大的方法是使用适当的库调用打开它。