(rails)如何validation上传的.txt文件是否不是,例如,图像文件?

我有一个上传文本文件字段,并且我计划将文件保存在某处,然后将文件的位置存储在数据库中。 但是,我想确保他们上传的文件是.txt文件,而不是图像文件。 我想这会发生在validation步骤中。 如何validation这样的事情? 另外,如何获取上传文件的文件名? 我总是可以检查它是否说’.txt’,但为了将来参考,知道如何validation而不仅仅是文件名将有所帮助。

尝试根据文件扩展名validation文件的内容,为重大黑客行为打开了大门。 更改扩展名并上传文件是微不足道的。

如果您使用的是基于Mac / Linux / Unix的系统,则OS“file”命令是标准的,因为它在文件中查找标记文件类型的关键字节。 http://sofzh.miximages.com/ruby-on-rails/pp 另一种方法是手动检查常见图像格式标题的文件头。 例如,.bmp文件以BM开头。 其他格式有自己可以使用的特定标记。