日期:2014-05-18  浏览次数:20923 次

上传文件限制文件类型的方法讨论.
我们知道,一般做上传文件的时候,我们通过读后缀名的方法,可以判断指定的文件.
可是,这样的判断,可以通过修改后缀名的方法来轻松饶开.

所以很多人就用提取二进制文件头的方法来精确判断文件类型.
因为在WINDOWS里,文件的前4个比特(byte而不是bit)来存储文件类型.比如说
.xls:870;.doc:87111

那么我们可以通过下面
int   count   =   4;
FileStream   fs;
byte[]   buffer   =   new   byte[count];
fs   =   new   FileStream(@ "文件路径 ",FileMode.Open);
fs.Read(buffer,   0,   count);

这样就读出了前4个比特,然后对比后就可精确判断文件类型.

不过问题出现了.这么说我们是不是还是得将文件从客户端上传到服务端后,
再读文件头判断类型,如果不是需求类型再删除?

能不能直接在客户端判断?

------解决方案--------------------
不懂,也想知道,做個記號
------解决方案--------------------
http://blog.csdn.net/vipxiaotian/archive/2007/09/18/1789686.aspx