剛學習.Net沒有多長時間,以前都是看別人的文章,學習前輩們的經驗和技巧,自己受益匪淺。今天也來個原創的,發個文件上傳的代碼。主要實現的功能有:1.可以控制允許上傳的文件類型;2.上傳之後自動以時間命名;3.自動創建上傳文件要保存的目錄。
要引入命名空間 System.IO;
#region 上傳文件
protected void btn_upload_Click(object sender, EventArgs e)
{
bool fileOK = false;
//文件的上傳路徑
string path = Server.MapPath("~/UpLoadFiles/Files/");
//判斷上傳文件夾是否存在,若不存在,則創建
if (!Directory.Exists(path))
{
//創建文件夾
Directory.CreateDirectory(path);
}
if (upload.HasFile)
{
//如果選擇了文件則執行
//獲取上傳文件的類型
string fileExtesion = System.IO.Path.GetExtension(upload.FileName).ToLower();
//允許上傳的類型
string[] allowExtesions = { ".doc", ".xls", ".rar", ".zip", ".ppt" };
for (int i = 0; i < allowExtesions.Length; i++)
{
if (fileExtesion == allowExtesions[i])
{
//文件格式正確 允許上傳
fileOK = true;
}
}
if (fileOK)
{
try
{
//以時間命名
string newname = System.DateTime.Now.ToString("yyyyMMddHHmmssffff");//聲稱文件名,防止重複
newname = newname + fileExtesion;
upload.PostedFile.SaveAs(path + newname);
Session["filename"] = newname;
lab_upload.Text = "上傳成功";
}
catch (Exception)
{
lab_upload.Text = "上傳失敗";
//throw ex;
}
}
else
{
lab_upload.Text = "上傳文件類型錯誤";
}
}
else
{
//尚未選擇文件
lab_upload.Text = "尚未選擇任何文件,請選擇文件";
return;
}
}
#endregion