相关疑难解决方法(0)

如何在上传前用javascript检查文件MIME类型?

我已阅读这个这个问题,这似乎表明,文件的MIME类型可以使用在客户端的JavaScript进行检查.现在,我知道真正的验证仍然必须在服务器端完成.我想执行客户端检查以避免不必要的服务器资源浪费.

为了测试是否可以在客户端完成,我将JPEG测试文件的扩展名更改为.png并选择要上载的文件.在发送文件之前,我使用javascript控制台查询文件对象:

document.getElementsByTagName('input')[0].files[0];
Run Code Online (Sandbox Code Playgroud)

这是我在Chrome 28.0上获得的:

File {webkitRelativePath:"",lastModifiedDate:Tue Oct 16 2012 10:00:00 GMT + 0000(UTC),name:"test.png",输入:"image/png",大小:500055 ......}

它显示的类型image/png似乎表明检查是基于文件扩展名而不是MIME类型完成的.我尝试了Firefox 22.0,它给了我相同的结果.但是根据W3C规范,应该实现MIME Sniffing.

我是否可以说目前无法使用javascript检查MIME类型?或者我错过了什么?

javascript html5 file-upload mime-types

150
推荐指数
6
解决办法
19万
查看次数

如何在PHP中检查上传文件的文件类型?

在PHP网站上,他们建议的唯一真实检查是使用is_uploaded_file()move_uploaded_file(),在这里.当然,出于各种原因,您通常不希望用户上传任何类型的文件.

因此,我经常使用一些"严格"的mime类型检查.当然这是非常有缺陷的,因为mime类型通常是错误的,用户无法上传他们的文件.伪造和/或改变也很容易.除此之外,每个浏览器和操作系统都以不同的方式处理它们.

另一种方法是检查扩展,当然比mime类型更容易改变.

如果你只想要图像,使用类似的东西getimagesize()会起作用.

那么其他类型的文件呢?PDF,Word文档或Excel文件?甚至是文本文件?

编辑:如果你没有mime_content_typeFileinfo和系统("file -bi $ uploadedfile")给你错误的文件类型,还有哪些其他选项?

php validation file-upload mime-types

47
推荐指数
2
解决办法
10万
查看次数

标签 统计

file-upload ×2

mime-types ×2

html5 ×1

javascript ×1

php ×1

validation ×1