ASP.NET code for advanced judgment of file types when uploading files

  • 2020-05-07 19:28:28
  • OfStack

 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class _Default : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 

} 
protected void bt_upload_Click(object sender, EventArgs e) 
{ 
try 
{ 
if (FileUpload1.PostedFile.FileName == "") 
{ 
this.lb_info.Text = " Please select file! "; 
} 
else 
{ 
string filepath = FileUpload1.PostedFile.FileName; 
if (IsAllowedExtension(FileUpload1) == true) 
{ 
string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1); 
string serverpath = Server.MapPath("images/") + filename; 
FileUpload1.PostedFile.SaveAs(serverpath); 
this.lb_info.Text = " Upload successful! "; 
} 
else 
{ 
this.lb_info.Text = " Please upload pictures "; 
} 
} 
} 
catch (Exception error) 
{ 
this.lb_info.Text = " Error uploading! The reason: " + error.ToString(); 
} 
} 
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")// instructions 255216 is jpg;7173 is gif;6677 is BMP,13780 is PNG;7790 is exe,8297 is rar 
{ 
return true; 
} 
else 
{ 
return false; 
} 
} 
} 

Test passed...

Related articles: