我有一个 Rails 应用程序,它允许用户上传视频(在本地,而不是云服务器上)。
我正在使用 Paperclip 3.1.4 和 Paperclip-ffmpeg 0.9.0。
一切正常,花花公子,但问题是,如果用户以错误的格式上传文件,或者大于验证规则允许的大小,则在上传完成之前不会显示错误消息 - 不是非常适合可用性,特别是如果上传错误格式的文件需要 10 分钟!
那么,有什么方法可以将jQuery(我承认对它知之甚少)集成到我的模型中,以便用户点击“上传”按钮时可以检查文件,而不是等到应用程序尝试上传文件(如果有意义的话)?
这是我模型中的一些代码(我已经去掉了不重要的东西):
class Video
attr_accessible :sourcefile
has_attached_file :sourcefile
...
validates_attachment_size :sourcefile, :less_than => 250.megabytes,
:message => "Sorry, your video is too large"
validates_attachment_content_type :sourcefile, :content_type => [...],
:message => "Sorry, the file format is wrong"
end
那么,有没有什么办法可以“固定”一个函数来触发某种形式的 JavaScript 在文件上传之前检查文件,并且这些验证规则会生效(我希望避免用户是否在他们的浏览器中禁用了 JavaScript)?
如果文件类型正确,如果我可以使用另一个函数来触发 jQuery 式进度条,那也很好,但在这个阶段不一定需要这样做。
谢谢!
编辑 -感谢下面的 Kevin B,他指出 jQuery/JavaScript 不能用于检查文件大小。那好吧!我还有其他方法可以采取吗?服务器正在运行 nginx,但我宁愿不去那里 - 我更愿意在 Rails 代码本身中处理这个问题。