這是asp.net實(shí)現(xiàn)文件上傳的代碼程序。只是一個(gè)示例,你可以根據(jù)自己的要求進(jìn)行修改。
文件上傳中要注意安全問(wèn)題。過(guò)濾文件類型,不能夠允許用戶上傳動(dòng)態(tài)腳本(asp,asp.net,php,cgi,exe等文件。否則你的網(wǎng)站將存在安全問(wèn)題。容易被黑掉
<%@ page Language = "C#"%>
<%@ Import Namespace = "System.IO" %>
public void uploadFile(object sender , EventArgs E) {
//檢查上傳文件不為空
if(inputFile.PostedFile.ContentLength > 0) {
//設(shè)定上傳文件的保存路徑
string strSaveDir = "./upload/";
string strName = inputFile.PostedFile.FileName;
//取得文件名(抱括路徑)里最后一個(gè)"."的索引
int intExt = strName.LastIndexOf(".");
//取得文件擴(kuò)展名
string strExt = strName.Substring(intExt);
//這里我自動(dòng)根據(jù)日期和文件大小不同為文件命名,確保文件名不重復(fù)
/*
DateTime datNow = DateTime.Now;
string strNewName = datNow.DayOfYear.ToString() + inputFile.PostedFile.ContentLength.ToString() + strExt; */
//取得文件名(包括路徑)里最后一個(gè)"\"的索引
int intPath = strName.LastIndexOf("\\");
//取得文件名(不包括路徑)
string strNewName = strName.Substring(intPath);
//保存文件到你所要的目錄,這里是IIS根目錄下的upload目錄.你可以改變.
//注意: 我這里用Server.MapPath()取當(dāng)前文件的絕對(duì)目錄.在asp.net里"\"必須用"\\"代替
inputFile.PostedFile.SaveAs(Server.MapPath(strSaveDir + strNewName));
//得到這個(gè)文件的相關(guān)屬性:文件名,文件類型,文件大小
labelUpResult.Text = "上傳成功!";
labelFileName.Text = "文件源:" + strName;
labelFileExt.Text = "文件類型:" + inputFile.PostedFile.ContentType + "( " + strExt + " )";
labelFileSize.Text = "文件大小:" + (inputFile.PostedFile.ContentLength / 1024).ToString() + " K Byte(s)";
} else {
labelUpResult.Text = "請(qǐng)選擇你要上傳的文件!";
labelFileName.Text = "";
labelFileExt.Text = "";
labelFileSize.Text = "";
}
}
上傳文件
?