我正在使用带有rails 3的jQuery-File-Upload,它运行得非常好。但我没有找到任何关于如何验证客户端上传文件的扩展名或内容类型的内容。
有办法吗?
原因我无论如何都会通过Paperclip在server-sid验证它,但我认为在客户端进行一次验证会更好。
答案 0 :(得分:2)
acceptFileTypes
允许的文件类型的正则表达式与文件类型或文件名匹配,因为只有支持File API的浏览器才会报告文件类型。
Type: Regular Expression
Example: /(\.|\/)(gif|jpe?g|png)$/i
请参阅https://github.com/blueimp/jQuery-File-Upload/wiki/Options
答案 1 :(得分:0)
这个问题暗示你(与大多数人相反)意识到当你只检测到延伸时,你并没有检查mime类型。
在HTML5中,您可以使用accept属性:
<input type="file" accept="video/*" />
您可以使用多个(逗号分隔?)值。 但规范说空间分离,但实际上我只看到逗号分隔值。 介意:在支持HTML5的浏览器中添加更多验证是多余的。
但是如果您的问题与其他用途相关(例如拖放文件上传),那么您可以使用javascript而不是jquery:
if(!(file.type.indexOf('video/') == 0)) {
alert('nope');
return false;
}
毋庸置疑,您还应该在服务器端进行验证。