復制代碼 代碼如下:
 
Boolean fileOk = false; 
string path = Server.MapPath("~/images/"); 
//判斷是否已經(jīng)選取文件 
if (FileUpload1.HasFile) 
{ 
//取得文件的擴展名,并轉換成小寫 
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); 
//限定只能上傳jpg和gif圖片 
string[] allowExtension = { ".jpg", ".gif" }; 
//對上傳的文件的類型進行一個個匹對 
int j = 0; 
for (int i = 0; i < allowExtension.Length; i++) 
{ 
if (fileExtension == allowExtension[i]) 
{ 
fileOk = true; 
return; 
} 
else 
{ 
j++; 
} 
} 
if (j > 0) 
{ 
Response.Write("<script>alert('文件格式不正確');</script>"); 
return; 
} 
} 
else 
{ 
Response.Write("<script>alert('你還沒有選擇文件');</script>"); 
return; 
} 
//如果擴展名符合條件,則上傳 
if (fileOk) 
{ 
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); 
Response.Write("<script>alert('上傳成功');</script>"); 
} 
復制代碼 代碼如下:
 
Boolean fileOk = false; 
string path = Server.MapPath("~/images/"); 
//判斷是否已經(jīng)選取文件 
if (FileUpload1.HasFile) 
{ 
//取得文件MIME內(nèi)容類型 
string type = this.FileUpload1.PostedFile.ContentType.ToLower(); 
if (type.Contains("image")) //圖片的MIME類型為"image/xxx",這里只判斷是否圖片。 
{ 
fileOk = true; 
} 
else 
{ 
Response.Write("<script>alert('格式不正確')</script>"); 
} 
} 
else 
{ 
Response.Write("<script>alert('你還沒有選擇文件');</script>"); 
} 
//如果擴展名符合條件,則上傳 
if (fileOk) 
{ 
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); 
Response.Write("<script>alert('上傳成功');</script>"); 
} 
復制代碼 代碼如下:
 
try 
{ 
//判斷是否已經(jīng)選取文件 
if (FileUpload1.HasFile) 
{ 
if (IsAllowedExtension(FileUpload1)) 
{ 
string path = Server.MapPath("~/images/"); 
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); 
Response.Write("<script>alert('上傳成功');</script>"); 
} 
else 
{ 
Response.Write("<script>alert('您只能上傳jpg或者gif圖片');</script>"); 
} 
} 
else 
{ 
Response.Write("<script>alert('你還沒有選擇文件');</script>"); 
} 
} 
catch (Exception error) 
{ 
Response.Write(error.ToString()); 
} 
#endregion 
} 
//真正判斷文件類型的關鍵函數(shù) 
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; 
} 
} 
新聞熱點
疑難解答
圖片精選