ASP.NET在上傳文件時(shí)對(duì)文件類(lèi)型的高級(jí)判斷的代碼
更新時(shí)間:2009年12月21日 03:48:51 作者:
在上傳文件過(guò)程中,可以通過(guò)修改擴(kuò)展名來(lái)逃過(guò)文件類(lèi)型的判斷并實(shí)現(xiàn)上傳,就需要可以驗(yàn)證究竟是什么文件。下面的代碼大家可以測(cè)試下。
復(fù)制代碼 代碼如下:
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 = "請(qǐng)選擇文件!";
}
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 = "上傳成功!";
}
else
{
this.lb_info.Text = "請(qǐng)上傳圖片";
}
}
}
catch (Exception error)
{
this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + 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")//說(shuō)明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
}
測(cè)試通過(guò)....
您可能感興趣的文章:
- asp.net下Response.ContentType類(lèi)型匯總
- asp.net 下載文件時(shí)根據(jù)MIME類(lèi)型自動(dòng)判斷保存文件的擴(kuò)展名
- c#根據(jù)文件類(lèi)型獲取相關(guān)類(lèi)型圖標(biāo)的方法代碼
- ASP.net判斷上傳文件類(lèi)型的三種有效方法
- ASP.NET中常見(jiàn)文件類(lèi)型、擴(kuò)展名、存放位置及用途總結(jié)
- C#實(shí)現(xiàn)判斷圖形文件格式的方法
- asp.net FileUpload控件實(shí)現(xiàn)文件格式判斷與文件大小限制
- C#檢測(cè)上傳文件真正類(lèi)型的方法
- asp.net文件上傳解決方案(圖片上傳、單文件上傳、多文件上傳、檢查文件類(lèi)型)
- ASP.NET通過(guò)byte正確安全的判斷上傳文件格式
相關(guān)文章
ASP.NET Core 2.0 本地文件操作問(wèn)題及解決方案
這篇文章主要介紹了ASP.NET Core 2.0 本地文件操作問(wèn)題及解決方案,需要的朋友可以參考下2017-10-10ASP.NET如何定時(shí)調(diào)用WebService服務(wù)
在ASP.NET程序中,可以通過(guò)Time組件實(shí)現(xiàn)定時(shí)器功能,但是它與數(shù)據(jù)庫(kù)中的任務(wù)計(jì)劃不一樣,它必須基于程序正在運(yùn)行中才可生效,而數(shù)據(jù)庫(kù)任務(wù)計(jì)劃是不需要基于ASP.NET程序運(yùn)行而執(zhí)行任務(wù)。2015-10-10ASP.NET Core使用HttpClient調(diào)用WebService
這篇文章介紹了ASP.NET Core使用HttpClient調(diào)用WebService的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Entity Framework Core生成列并跟蹤列記錄
這篇文章介紹了Entity Framework Core生成列并跟蹤列記錄的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02asp.net發(fā)送郵件實(shí)現(xiàn)方法
這篇文章主要介紹了asp.net發(fā)送郵件實(shí)現(xiàn)方法,以一個(gè)具體實(shí)例的形式詳細(xì)講述了asp.net發(fā)送郵件的技巧,需要的朋友可以參考下2014-10-10Asp.net TreeView來(lái)構(gòu)建用戶(hù)選擇輸入的方法 推薦
選擇優(yōu)于輸入,這是一般人的共識(shí),面對(duì)繁多的數(shù)據(jù),提供良好的選擇界面,一方面增強(qiáng)用戶(hù)的界面體驗(yàn),一方面也提高了數(shù)據(jù)的準(zhǔn)確性,更節(jié)省了用戶(hù)的寶貴時(shí)間。2009-12-12ASP.NET+XML打造網(wǎng)絡(luò)硬盤(pán)原理分析
文件傳送常用的三種方式:FTP、Email及網(wǎng)上鄰居,都在一定程度上實(shí)現(xiàn)了文件數(shù)據(jù)的交流,但它們都主要面向“點(diǎn)對(duì)點(diǎn)”的傳送,無(wú)法實(shí)現(xiàn)一塊空間,資源互見(jiàn)的應(yīng)用需求,這種基于點(diǎn)對(duì)多的共享模式需要尋求另外的傳輸途徑,網(wǎng)絡(luò)硬盤(pán)就是一種很好的解決方式2012-09-09ASP.NET Session會(huì)導(dǎo)致的性能問(wèn)題
你的站點(diǎn)有被客戶(hù)投訴很慢嗎?是不是查了很多遍還是沒(méi)有完全解決?是不是數(shù)據(jù)庫(kù)沒(méi)有發(fā)現(xiàn)異常,CPU也沒(méi)有異常,內(nèi)存占用量沒(méi)有異常,GC計(jì)數(shù)沒(méi)有異常,硬盤(pán)IO也沒(méi)有異常,帶寬沒(méi)有異常,線路沒(méi)有異常,沒(méi)有丟包,但就是被投訴?2009-07-07