星期四, 7月 31, 2008

驗證上傳檔案是否為圖檔

之前有在處理驗證使用者上傳圖檔的問題..然後加上小舖有人再問..我就把我之前查的資料整理一下傳上來給大家參考..一般來說..驗證圖檔..我們都會去檢查他的副檔名..這是第一個直覺..不要跟我說..開開看就知道了..Surprise..可是使用者如果給你心機改掉副檔名..那不就整組害料料了..所以對付心機重的人有心機點的手法..Skull..就是去驗證..檔案的前兩個byte[]..這是小舖之前討論的..那來看一下簡單範例ㄅ..

if (FileUpload1.HasFile)
{
byte[] btArr = FileUpload1.FileBytes;
string extentionName = checkfileExtention.validateExtention(btArr);
Response.Write(extentionName);//列印出結果
}

class checkfileExtention
{
public static string validateExtention(byte[] fileUpLoadByte)
{
string extension = string.Empty;
switch (string.Format("{0:X2}{1:X2}", fileUpLoadByte[0], fileUpLoadByte[1]))
{
case "FFD8"://jpg
extension = "jpg";
break;
case "424D"://bmp
extension = "bmp";
break;
case "4749"://gif
extension = "gif";
break;
default:
extension = "none";
break;
}
return extension;
}
}

參考:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20070801180408XHE

沒有留言: