如何从网页读取客户端文件头?

时间:2011-09-05 21:09:11

标签: php javascript html

我正在制作一个用于识别某些文件类型的在线工具。我需要从文件头中访问一些字节值来执行此操作。

用户选择客户端计算机上的文件。不知何故,我需要从文件中获取关键字节值,然后在服务器端数据库中查找这些值以对文件进行分类。

如何从客户端文件读取字节?

我知道我可以让用户将文件上传到服务器,但是这些文件非常大,我只需要几个字节,因此上传整个文件会很慢而浪费。

我可以以某种方式上传部分文件吗?似乎很难取消html表单上传,取消后文件部分不可用。这是对的吗?

是否可以在javascript中读取文件?我用谷歌搜索了这个,但答案还不清楚。我已经读过可以使用java applet,但前提是applet已经签名。

还有其他方法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用html5,但需要使用闪存或其他一些非旧版浏览器的非JavaScript方法。

http://www.html5rocks.com/en/tutorials/file/dndfiles/

答案 1 :(得分:1)

因此。如上所述,您必须使用非JavaScript方法。但是每种方法都有一些减号。 FLASH - 使用代理的糟糕工作。特别糟糕。当然你可以使用flash obly获取文件的base64代码并将其提供给js。在这种情况下,这将是努力工作。 Java Applet - greate工作,但没有多少用户拥有JVM或JVM版本可能不是sasme(但如果你将使用JDK1.4或1.5 thi没问题)。 ActiveX - 仅在IE和Windows上工作 HTML5文件Api - 不是跨浏览器解决方案。只能在最后的浏览器上使用,而不是全部。

当然更好地使用服务器端 - 在php中,例如getmimetype和其他功能。

但我可以手动更改文件的标题。例如,我可以从jpeg或png添加到php文件头 - 您的脚本将认为是图像。

所以这是一个糟糕的解决方案:使用标头。对于检查文件类型,可以简单地使用对用户的信任文件的mimetype,并通过文件扩展名生成图标