ASP.NET上傳控件FileUpload應用詳解 附綜合案例
首先我們先說一下具體的實現思路,
第一步,判斷用戶是否選擇了文件,如果沒有選擇了就直接return結束程序;
第二步,獲取用戶選擇文件的大小和系統配置的最大上傳限制(在web.config中配置,等會下面會貼出來);
第三步,判斷用戶選擇的文件是否大於系統配置的最大上限,如果爲TRUE,則直接提示用戶並return結束程序;
第四步,獲取所選文件名,並件格式判斷是否爲exe文件,如果是則直接提示並return結束程序;
第五步,修改文件名爲“當前時間_文件名”;
第六步,獲取服務器文件夾路徑;
第七步,上傳文件,這裏要這個異常捕獲,避免網絡問題或者其他問題導致上傳失敗。
- 代碼效果
界面:
成功截圖:
目錄截圖:
- 代碼實現步驟
第一步先在前臺文件(.aspx)添加FileUpload控件和上傳Button控件代碼,如下:
請選擇要上傳的文件:<asp:FileUpload ID="ful" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="開始上傳" OnClick="btnUpload_Click" />
- 在後臺文件(.aspx.cs)btnUpload_Click事件裏寫具體的業務實現。(注:前端綁定OnClick點擊事件後後臺代碼會自動生產對應的點擊事件函數,如果沒有則手動添加)
代碼如下:
protected void btnUpload_Click(object sender, EventArgs e)
{
//【1】判斷文件是否存在
if (!this.ful.HasFile) return;
//【2】獲取文件大小,判斷是否符合設置要求(變成MB)
double fileLength = this.ful.FileContent.Length / (1024.0 * 1024.0);
//獲取配置文件中上傳文件大小的限制
double limitedLength = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["PhysicsObjectLength"]);
limitedLength = limitedLength / 1024.0;//轉換成MB單位
//判斷實際文件大小是否符合要求
if (fileLength > limitedLength)
{
// this.ltaMsg.Text = "上傳文件大小不能超過" + limitedLength + "MB";
this.ltaMsg.Text = "<script type='text/javascript'>alert('上傳文件最大不能超過" + limitedLength + "M')</script>";
return;
}
//【3】獲取文件名,判斷文件擴展是否符合要求
string fileName = this.ful.FileName;
//判斷文件名是否是exe文件
if (fileName.Substring(fileName.LastIndexOf(".") + 1).ToLower() == "exe")
{
this.ltaMsg.Text = "<script type='text/javascript'>alert('上傳文件不能是exe文件')</script>";
return;
}
//修改文件名
fileName = DateTime.Now.ToString("yyyyMMddhhssms") + "_" + fileName;
//【4】獲取服務器文件夾路徑
string path = Server.MapPath("~/App_Code");
//【5】上傳文件
try
{
this.ful.SaveAs(path + "/" + fileName);
this.ltaMsg.Text = "<script type='text/javascript'>alert('文件上傳成功!')</script>";
}
catch (Exception ex)
{
this.ltaMsg.Text = "<script type='text/javascript'>alert('文件上傳失敗!" + ex.Message + "')</script>";
}
}
注:這裏面涉及到一個選擇服務器目錄,這個目錄每個人不同,你得先創建一個文件夾作爲上傳目錄存儲上傳的文件。
就是這一句string path = Server.MapPath("~/App_Code");裏面的~/App_Code替換成自己要上傳到服務器文件夾的目錄。就如上面的目錄截圖中的一樣。
- 配置文件
上面那段代碼裏有一句是訪問web.config中appSettings裏的PhysicsObjectLength的value值的,如圖
但是我們的配置文件不會自動幫我添加相應的配置,因此需要我們手動去添加。(在configuration裏添加)
代碼如下:
<appSettings>
<add key="PhysicsObjectLength" value="1024" />
</appSettings>
- 總結
(1)在前臺文件添加上傳課件和按鈕課件,可直接寫代碼也可以直接使用工具箱直接添加
(2)在後臺文件添加點擊事件,並寫具體的業務邏輯
(3)在web.config中配置appSettings設置最大上傳限制。其中裏面的數值單位是KB,但是不要寫單位。 - 綜合案例下載 ASP.NET基礎控件綜合案例
- 百度網盤下載
鏈接:https://pan.baidu.com/s/1WmuGJCV9oNE9IvehLS-KbQ
提取碼:s5q9