例子演示,詳解ASP.NET上傳控件FileUpload應用

ASP.NET上傳控件FileUpload應用詳解 附綜合案例

首先我們先說一下具體的實現思路,
第一步,判斷用戶是否選擇了文件,如果沒有選擇了就直接return結束程序;
第二步,獲取用戶選擇文件的大小和系統配置的最大上傳限制(在web.config中配置,等會下面會貼出來);
第三步,判斷用戶選擇的文件是否大於系統配置的最大上限,如果爲TRUE,則直接提示用戶並return結束程序;
第四步,獲取所選文件名,並件格式判斷是否爲exe文件,如果是則直接提示並return結束程序;
第五步,修改文件名爲“當前時間_文件名”;
第六步,獲取服務器文件夾路徑;
第七步,上傳文件,這裏要這個異常捕獲,避免網絡問題或者其他問題導致上傳失敗。

  1. 代碼效果
    界面:
    在這裏插入圖片描述
    成功截圖:
    在這裏插入圖片描述
    目錄截圖:
    在這裏插入圖片描述
  2. 代碼實現步驟
    第一步先在前臺文件(.aspx)添加FileUpload控件和上傳Button控件代碼,如下:
請選擇要上傳的文件:<asp:FileUpload ID="ful" runat="server" />
            &nbsp;&nbsp;
            <asp:Button ID="btnUpload" runat="server" Text="開始上傳" OnClick="btnUpload_Click" />
  1. 在後臺文件(.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替換成自己要上傳到服務器文件夾的目錄。就如上面的目錄截圖中的一樣。
  1. 配置文件
    上面那段代碼裏有一句是訪問web.config中appSettings裏的PhysicsObjectLength的value值的,如圖
    在這裏插入圖片描述
    但是我們的配置文件不會自動幫我添加相應的配置,因此需要我們手動去添加。(在configuration裏添加)
    代碼如下:
 <appSettings>
    <add key="PhysicsObjectLength" value="1024" />
  </appSettings>
  1. 總結
    (1)在前臺文件添加上傳課件和按鈕課件,可直接寫代碼也可以直接使用工具箱直接添加
    (2)在後臺文件添加點擊事件,並寫具體的業務邏輯
    (3)在web.config中配置appSettings設置最大上傳限制。其中裏面的數值單位是KB,但是不要寫單位。
  2. 綜合案例下載 ASP.NET基礎控件綜合案例
  3. 百度網盤下載
    鏈接:https://pan.baidu.com/s/1WmuGJCV9oNE9IvehLS-KbQ
    提取碼:s5q9
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章