
在公共機房教學中存在這樣一個問題:一方面,要求學生能夠保存自己的作業或文件;另一方面,公共機房機器大多是安裝保護卡的,不能存儲文件,如果學生使用U盤還容易交叉感染病毒。針對這一問題,筆者利用ASP.NET開發了網絡硬盤系統。
網絡硬盤是在服務器上為用戶提供的一塊存儲空間,用戶通過登錄網站或者使用網站提供的客戶端軟件,實現異地的文件上傳和下載。學生利用該系統可以存儲上課用的資料,教師可通過共享方式發布教學資料,并可通過寫共享目錄的方式接受學生上傳的作業。
1 功能設計
根據網絡硬盤的實際應用,將網絡硬盤進行功能劃分,如圖1所示。
1.1 用戶管理
實現對用戶的注冊、登錄、注銷管理。本系統只對注冊用戶開放使用,每個注冊用戶給予100M硬盤空間,用戶正確登錄后才能使用本網絡硬盤讀取自己的數據。學生畢業后身份注銷,分配的空間收回。
1.2 文件管理
(1) 新建文件夾。文件夾用于對文件進行分類管理,在本系統中默認建立3個文件夾,分別是:作業、軟件、娛樂。用戶還可以根據自己的需要建立或刪除文件夾。
(2) 上傳文件。用戶正確登錄進入本系統后可以選擇相應的文件夾,點擊“瀏覽”按鈕選擇文件進行上傳。由于給每個用戶分配的空間有限,所以限定上傳文件最大為4M。
(3) 刪除文件。給予用戶的空間有限,使用該功能整理用戶文件。
(4) 搜索文件。該功能用于快速定位要操作的文件。
(5) 下載文件。找到文件點擊下載,提取自己保存的文件。
(6) 修改個人資料。對個人資料進行修改。
2 關鍵技術實現代碼
2.1 新建文件夾代碼
protected void AddBtn_Click(object sender,EventArgs e)
{
string path = Server.MapPath("./userDisk/") + this.Name.Text;
DirectoryInfo di = new DirectoryInfo(path);
di.Create();
string 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 + "’,’" +
System.DateTime.Now.ToShortDateString() + "’)";
DB.Exec(sql);
Response.Write("<script>alert(’" + "新建文件夾成功!" + "’);</script>");
}
2.2 上傳文件代碼
protected void SureBtn_Click(object sender, EventArgs e)
{
string path = this.FileUpload1.PostedFile.FileName;
if (path == "")
{
Response.Write("<script>alert(’請選擇要上傳的文件’);</script>");
return;
} string fileName = Path.GetFileName(path);
string savePath = Server.MapPath("Disk") + "/" + fileName;
this.FileUpload1.PostedFile.SaveAs(savePath);
string 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() + "’)";
DB.Exec(sql);
this.TextBox1.Text = "";
this.Label3.Text = "上傳成功!";
}
2.3 下載文件代碼
private void FileDownload(string FullFileName)//
{
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false; Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" +HttpUtility.UrlEncode(DownloadFile.FullName,System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}
3 結束語
網絡硬盤是一個功能強大的網絡應用系統,本文就其功能和實現代碼作了一定的說明。網絡硬盤可在本文功能上加以擴展,是一個很好的網絡辦公系統。本文所設計網絡硬盤功能已通過ASP.NET編程實現并投入使用,運行穩定。