在使用ashx上传图片的时候,我想限制只传图片格式,怎么限制?
我看了下 MIME的类型是 application/octet-stream
这样的可以限制为图片格式吗?
我看了下 MIME的类型是 application/octet-stream
这样的可以限制为图片格式吗?
解决方案 »
- 下载问题,在线等,急急急~!
- asp.net fckeditor 取值
- SQL 2005无法使用SQL Server身份验证登陆
- vs2005+sql2000下asp.net 网站管理工具 报错,请教
- 一个简单的TEXTBOX的问题!!!难死我了!
- 有自定义控件开发经验的朋友请进一直很郁闷的问题,关于开发自定义控件的问题,需要注意那些问题,原理和步骤能具体说明吗?谢谢 !!
- 求用C#,ASP.NET写的网上问卷调查的小例子。
- 如何能把DataDrid中的控件的样式改掉?
- 救命啊!!请大侠指点.net中Table分布页一定给分
- 怎样才能限制注册用户名为英文\数字\下划线\还有标准汉字组成?主要是汉字我不懂怎么限定
- 偶尔出现 列XXX 不再table中 刷新一下就好了 怎么回事啊
- 怎样取出验证码显示在picturebox里面
获取文件头判断文件格式
如JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
TIFF (tif),文件头:49492A00
function checkImageFormat(fileName) {
var extension = /\.(gif|jpg|jpeg|bmp)$/i;
if(!extension.test(fileName)) {
return false;
}
return true;
}
如果后台的话,那先获取文件的后缀名Path.GetExtension(stirng fileName)
Image.FromStream 啊。
如果是图片每种文件有一个唯一的GUid值
以及文件头怎么判断
兄弟来点 code
String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions = { ".gif", ".png", ".bmp", ".jpg" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
break;
}
}
二种:
<File>
<id>UpImgFile</id>
<format>#.jpg#.png#.bmp#.gif#.jpeg</format>
</File>
读取xml判断
第二种:
//真正判断文件类型的关键函数
public static bool IsAllowedExtension(FileUpload hifile)
{
System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
string fileclass = "";
//这里的位长要具体判断.
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
}
r.Close();
fs.Close();
if (fileclass == "255216" || fileclass == "7173")//说明:255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
} }
try
{
Image img = Image.FromStream(Request.Files[0].InputStream);
img.RawFormat.Guid.ToString() == "xxxxx????xxxxxx" //不同图像格式有不同的Guid
}
catch (ArgumentException exp)
{
//不是图像流
}