
在公共機房教學中存在這樣一個問題:一方面,要求學生能夠保存自己的作業或文件;另一方面,公共機房機器大多是安裝保護卡的,不能存儲文件,如果學生使用U盤還容易交叉感染病毒。針對這一問題,筆者利用ASP.NET開發了網絡硬盤系統。
網絡硬盤是在服務器上為用戶提供的一塊存儲空間,用戶通過登錄網站或者使用網站提供的客戶端軟件,實現異地的文件上傳和下載。學生利用該系統可以存儲上課用的資料,教師可通過共享方式發布教學資料,并可通過寫共享目錄的方式接受學生上傳的作業。
?。?功能設計
根據網絡硬盤的實際應用,將網絡硬盤進行功能劃分,如圖1所示。
1.1 用戶管理
實現對用戶的注冊、登錄、注銷管理。本系統只對注冊用戶開放使用,每個注冊用戶給予100M硬盤空間,用戶正確登錄后才能使用本網絡硬盤讀取自己的數據。學生畢業后身份注銷,分配的空間收回。
?。保?文件管理
?。ǎ保?新建文件夾。文件夾用于對文件進行分類管理,在本系統中默認建立3個文件夾,分別是:作業、軟件、娛樂。用戶還可以根據自己的需要建立或刪除文件夾。
?。ǎ玻?上傳文件。用戶正確登錄進入本系統后可以選擇相應的文件夾,點擊“瀏覽”按鈕選擇文件進行上傳。由于給每個用戶分配的空間有限,所以限定上傳文件最大為4M。
(3) 刪除文件。給予用戶的空間有限,使用該功能整理用戶文件。
?。ǎ矗?搜索文件。該功能用于快速定位要操作的文件。
(5) 下載文件。找到文件點擊下載,提取自己保存的文件。
(6) 修改個人資料。對個人資料進行修改。
?。?關鍵技術實現代碼
?。玻?新建文件夾代碼
?。穑颍铮簦澹悖簦澹?void AddBtn_Click(object sender,EventArgs e)
?。?br />
?。螅簦颍椋睿?path = Server.MapPath("./userDisk/") + this.Name.Text;
?。模椋颍澹悖簦铮颍桑睿妫?di = new DirectoryInfo(path);
di.Create();
?。螅簦颍椋睿?sql = "";
sql = "insert into Directory (U_name,D_name,D_ParentID,D_contein,D_date) values (’" +
Session["U_name"].ToString() + "’,’" + this.Name.Text + "’,’" + 0 + "’,’" + 0 + "’,’" +
?。樱螅簦澹恚模幔簦澹裕椋恚澹危铮鳎裕铮樱瑁铮颍簦模幔簦澹樱簦颍椋睿纾ǎ?+ "’)";
?。模拢牛澹悖ǎ螅瘢欤?;
?。遥澹螅穑铮睿螅澹祝颍椋簦澹ǎⅲ迹螅悖颍椋穑簦荆幔欤澹颍簦ā?+ "新建文件夾成功!" + "’);</script>");
?。?br />
?。玻?上傳文件代碼
protected void SureBtn_Click(object sender, EventArgs e)
?。?br />
?。螅簦颍椋睿?path = this.FileUpload1.PostedFile.FileName;
if (path == "")
{
?。遥澹螅穑铮睿螅澹祝颍椋簦澹ǎⅲ迹螅悖颍椋穑簦荆幔欤澹颍簦ā堖x擇要上傳的文件’);</script>");
?。颍澹簦酰颍睿?br />
} string fileName = Path.GetFileName(path);
?。螅簦颍椋睿?savePath = Server.MapPath("Disk") + "/" + fileName;
this.FileUpload1.PostedFile.SaveAs(savePath);
?。螅簦颍椋睿?sql;
sql = "insert into URL (Ur_name,Ur_url,Ur_contain,Ur_D_name,Ur_date) values(’" + this.TextBox1.Text + "’,’"+"Disk/" + this.DropDownList1.Text + "/" + fileName + "’,’"+this.FileUpload1.PostedFile.ContentLength+"KB"+"’,’" + this.DropDownList1.Text + "’,’" + System.DateTime.Now.ToShortDateString() + "’)";
?。模拢牛澹悖ǎ螅瘢欤?;
this.TextBox1.Text = "";
?。簦瑁椋螅蹋幔猓澹欤常裕澹?= "上傳成功?。?;
?。?br />
?。玻?下載文件代碼
?。穑颍椋觯幔簦?void FileDownload(string FullFileName)//
?。?br />
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
?。遥澹螅穑铮睿螅澹茫欤澹幔颍龋澹幔洌澹颍螅ǎ?;
Response.Buffer = false; Response.ContentType = "application/octet-stream";
?。遥澹螅穑铮睿螅澹粒穑穑澹睿洌龋澹幔洌澹颍ǎⅲ茫铮睿簦澹睿簦模椋螅穑铮螅椋簦椋铮睿?, "attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
?。遥澹螅穑铮睿螅澹粒穑穑澹睿洌龋澹幔洌澹颍ǎⅲ茫铮睿簦澹睿簦蹋澹睿纾簦瑁?, DownloadFile.Length.ToString());
?。遥澹螅穑铮睿螅澹祝颍椋簦澹疲椋欤澹ǎ模铮鳎睿欤铮幔洌疲椋欤澹疲酰欤欤危幔恚澹?br />
?。遥澹螅穑铮睿螅澹疲欤酰螅瑁ǎ?;
?。遥澹螅穑铮睿螅澹牛睿洌ǎ?br />
}
?。?結束語
網絡硬盤是一個功能強大的網絡應用系統,本文就其功能和實現代碼作了一定的說明。網絡硬盤可在本文功能上加以擴展,是一個很好的網絡辦公系統。本文所設計網絡硬盤功能已通過ASP.NET編程實現并投入使用,運行穩定。