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