前面兩步檢查屬初級(jí)檢查(當(dāng)然,在前臺(tái)用JS作了客戶端的擴(kuò)展名檢查),如果通過(guò)再使用圖片類檢查,如果是真是圖片 就能通過(guò),否則不行(已經(jīng)過(guò)測(cè)試)
protected bool isValidImage(System.Web.HttpPostedFile postedFile)
{
string sMimeType = postedFile.ContentType.ToLower();
if (sMimeType.IndexOf("image/") < 0)
return false;
if (postedFile.ContentLength < 50)
return false;
try
{
System.Drawing.Image img = System.Drawing.Image.FromStream(postedFile.InputStream);
if (img.Width * img.Height < 1)
return false;
img.Dispose();
}
catch
{
return false;
}
return true;
}
還有另外一種方式
//真正是否真的為圖片
public static bool IsAllowedExtension(FileUpload hifile)
{
FileStream fs = new FileStream(hifile.PostedFile.FileName,FileMode.Open,FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
string fileclass = "";
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch { }
r.Close();
fs.Close();
//說(shuō)明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar,|| fileclass=="13780"||fileclass=="6677"
if (fileclass == "255216" || fileclass == "7173")
{
return true;
}
else
{
return false;
}
}
|