標籤:web開發 asp.net
時下比較流行的雲端硬碟,比如百度雲端硬碟,360雲端硬碟,金山快盤等等,相信大家都用過.雲端硬碟是互連網儲存工具,是互連網雲技術的產物,是通過互連網為企業和個人提供資料資訊的儲存,讀取以及下載等服務,其最大的兩個特點是安全穩定和海量儲存.我的筆記本硬碟只有500G,有一天當我發現我的6個硬碟分區中紅了4個,我就開始往我的百度雲端硬碟上"搬東西",這個搬東西就是我們今天要談到的"檔案上傳".
其實檔案上傳在互連網應用和網站開發中十分常見,我們在各類社交軟體中使用的"照片上傳",在各類考試網上報名時,要上傳本人照片等等本質上都是檔案上傳,只不過這個檔案是圖片或者照片罷了.說了這麼多隻是想表示,檔案上傳的功能應用領域十分廣泛,因此在Web開發中也是一個非常重要的的技術.雖然我並不清楚,各類網盤的檔案上傳技術是如何?的,但是我相信大致的原理是一樣的.
最近在學習ASP.NET技術,今天就使用它來簡單的類比一下檔案上傳的功能,只是供學習參考而已,不作為商業開發技術使用,大家也別較真.下面來看具體的實現過程:
首先建立一個ASP.NET應用程式項目,然後添加一個Web表單,名稱自己定.建好之後如所示:
然後對inputfile.aspx檔案進行頁面和設計和代碼編寫,這裡比較重要的是一個asp控制項,叫做FileUpload控制項.它主要是調用系統API來瀏覽本地的檔案,然後添加上傳.在這裡我們一定要建立一個檔案夾用來儲存從用戶端上傳的檔案,比如我在程式的專案檔下建立了一個UpFile檔案夾如
下面來看前台和背景代碼部分,鑒於只是舉例,對於頁面配置就不那麼複雜了,就三個控制項,先看頁面代碼
<span style="font-size:18px;"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="inputfile.aspx.cs" Inherits="InputFile.inputfile" %><!DOCTYPE html><link href="filecss.css" rel="stylesheet" /><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>檔案上傳</title></head><body> <form id="form1" runat="server"> <div> </div > <asp:Panel ID="Panel1" runat="server" Height="142px" Width="256px" CssClass ="Panel" > <div class ="buju"> <asp:Label ID="Label1" runat="server" Text="選擇您要上傳的檔案:"></asp:Label> </div> <div class ="buju"> <asp:FileUpload ID="FileUpload1" runat="server" /> </div> <div class ="buju"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上傳" /> </div> </asp:Panel> </form></body></html></span>
相應的頁面後台代碼如下:
<span style="font-size:18px;"> protected void Button1_Click(object sender, EventArgs e) { //擷取將要上傳檔案的絕對路徑 string FullFileName = this.FileUpload1.PostedFile.FileName; //通過字串截取函數將上傳檔案的檔案名稱提出來 string fileName = FullFileName.Substring(FullFileName.LastIndexOf("\\") + 1); //使用控制項的方法儲存檔案到指定的檔案夾中 this.FileUpload1.PostedFile.SaveAs(Server.MapPath("UpFile") + "\\" + fileName); }</span>
最後我們來看運行結果的介面,我分別上傳圖片,文檔和視頻檔案以及其他的一些其他格式的檔案,比如zip壓縮檔等,來測試能能否上傳成功.無論是什麼格式檔案都可以上傳,只是在測試中出現了一個問題,那就是大檔案的處理。
當然在測試的過程中,當我上傳一個20多M的視頻檔案時,報錯了,至於更大的檔案,那就無法完成了。
上網找了找解決方案,發現是控制項對檔案大小有一個限制,預設是4M,如何修改呢?很簡單,只需要在設定檔web.config的system.web中的httpruntime標籤中作如下設定即可:
maxRequestLength指示ASP.NET 支援的最大檔案上傳大小。該限制可用於防止因使用者將大量檔案傳遞到該伺服器而導致的拒絕服務的攻擊。指定的大小以 KB 為單位。預設值為 4096KB (4 MB)。
executionTimeout指示允許執行請求的最大時間,以秒為單位,預設90秒
小結:這是一個特別簡單的例子,但是卻是一個特別有用的東西,不論技術多麼的高超,都是在這些的基礎上變得更加完美的。因此打好基礎很重要。
ASP.NET實戰之檔案上傳