Javascript-上传文件内容类型验证
Javascript - Upload file content type validation
如何在使用JavaScript上传之前验证文件的内容类型我没有要求扩展验证。我想验证pdf,纯文本和MS word文件。
我使用django forms.ModelForm
将文件上传小部件传递到html。我也无法在服务器端实现这一点。这个问题来了,
Django-上传的文件类型验证
也许吧,但它不会给你任何形式的安全,因为攻击者可以使用其他方式上传文件,从而绕过你的验证。
要使用扩展名检查文件类型(这非常不安全,因为操作起来非常容易),可以使用JavaScript。请参阅此问题:如何验证文件上载的文件类型?
[EDIT]经过一些谷歌搜索,我发现input
元素有一个属性accept
,它采用mime类型模式的列表。不幸的是,大多数浏览器都忽略了它(或者只使用它来调整文件选择对话框)。请参阅此问题:文件输入';接受';属性-它有用吗?
[EDIT 2]现在,文件API(请参阅"使用web应用程序中的文件")似乎是您真正不想使用文件扩展名的唯一方式。每个File
实例都有一个包含mime类型的type
属性。
但是这个API正在进行中,所以它不是在所有地方都可用。并且不能保证您会得到一个MIME类型(属性可以是""
)。
因此,我建议这种方法:尝试File API。如果它不可用或type
属性为空,请使用文件扩展名。
理论上,您可以使用File API读取文件。
然后,您需要用JavaScript为您关心的文件格式编写解析器,以检查它们是否匹配。
相关文章:
- W3验证器->使用<脚本类型=“;text/javascript”>在html的正文中
- 输入类型=文件验证停止其他输入类型验证
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 在 javascript 中验证或读取远程图像类型
- 当输入字段位于 HTML 表中且其类型为“隐藏”时进行表单验证
- 我如何验证/发布编辑类型为表单编辑中的 jqgrid 选择的列
- 类型错误:对象 #<对象> 没有方法“身份验证”
- 如何javascript验证<输入类型=文件多个>如果浏览器不支持多个
- Javascript-上传文件内容类型验证
- 使用Foundation Abide验证文件类型
- jQuery更改时验证文件类型
- angularjs输入类型日期的日期格式验证
- jquery 验证脚本的类型错误
- Angular2 谷歌身份验证,按钮渲染上的类型错误
- 正则表达式未正确验证 4 种值类型的数字
- JavaScript 中的日期输入类型验证
- 对Sharepoint列表列应用类型验证
- 如何根据表单元素类型验证调查
- 如何做图像类型验证在magento
- 文件类型验证!!用于生成的输入文件标记元素