亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會(huì)員 設(shè)為首頁 | 收藏本站
當(dāng)前位置 : 首頁>軟件學(xué)院>程序開發(fā)>ASP.NET>正文
 
Asp.net+Xml開發(fā)網(wǎng)絡(luò)硬盤

http://m.yibo1263.com 2008-6-29 21:06:44  來源:本站  編輯:張賀兵
 
資源共享時(shí)應(yīng)該考慮安全性。這里,你可以設(shè)置用戶對該文件夾的訪問權(quán)限,通過設(shè)置密碼,你可以指定是否允許用戶進(jìn)入該文件夾,是否允許刪除該文件夾,或者兩者都禁止。這樣,你可以保護(hù)自己的文件,將它們獨(dú)占訪問或者限制在一個(gè)特定的范圍內(nèi)(這個(gè)范圍的成員應(yīng)該知道你的密碼),這樣,產(chǎn)品研發(fā)部門可以共用一個(gè)文件夾,財(cái)務(wù)部門也通過同樣的方式共用另一個(gè)文件夾,不屬于這個(gè)部門的人員將限制訪問。當(dāng)然,這樣的限制你也可以應(yīng)用到單個(gè)文件上(這樣的應(yīng)用似乎不多,程序未實(shí)現(xiàn))。

  此外,為了管理這些文件夾,你需要保留它們的設(shè)置信息:文件夾名、位置、受限操作類型、密碼及創(chuàng)建人等。程序中將這些信息寫入一Xml文件(此為folder.xml文件),隨后對文件夾的各種管理操作均通過讀寫該xml文件來進(jìn)行,以下方法就實(shí)現(xiàn)了新建文件夾時(shí)設(shè)置信息的存儲(chǔ):

  public void CreateXmlOrAddFrag(string xmlFullPath,string

   folderFullPath,string owner,string password,int type){

   XmlDocument xmlDoc=new XmlDocument();

   string xml="";

   string xmlNode="";

   xmlNode+="";

   xmlNode+=folderFullPath;

   xmlNode+="
";

   xmlNode+="";

   xmlNode+=owner;

   xmlNode+="
";

   xmlNode+="";

   xmlNode+=password;

   xmlNode+="
";

   xmlNode+="";

   xmlNode+=type;

   xmlNode+="
";

   xmlNode+="
";

   if(!File.Exists(xmlFullPath)){//不存在則創(chuàng)建xml存儲(chǔ)文件

   xml="";

   xml+="";

   xml+=xmlNode;

   xml+="
";

   xmlDoc.LoadXml(xml);

   xmlDoc.Save(xmlFullPath);//存儲(chǔ)文件

   }

   else{//存在xml存儲(chǔ)文件則添加新的文檔片段

   xmlDoc.Load(xmlFullPath);

   XmlDocumentFragment

  docFrag=xmlDoc.CreateDocumentFragment();//文檔片元素節(jié)點(diǎn)

   docFrag.InnerXml=xmlNode;

   XmlNode currNode=xmlDoc.DocumentElement;//獲取文檔根節(jié)淀

   currNode.InsertBefore(docFrag,currNode.FirstChild);//插入文檔段

   xmlDoc.Save(xmlFullPath);//存儲(chǔ)改變

   }

  }

  其中,參數(shù)fileFullPath是存儲(chǔ)文件夾信息的xml文件路徑,folderFullPath是此新文件夾路徑,owner是創(chuàng)建人名,password是密碼,type表示限制操作的類型("0"表示進(jìn)入受限,"1"表示刪除受限)。在程序運(yùn)行之初,存儲(chǔ)文件夾信息的folder.xml文件可能尚不存在,所以程序中首先判斷這個(gè)文件是否存在,不存在則動(dòng)態(tài)創(chuàng)建這個(gè)文件,這之后新建文件夾時(shí),將只需要添加文檔片段。這里,對Xml文件的讀寫通過DOM(文檔對象模型)來實(shí)現(xiàn),由于此處Xml文件不會(huì)太大,這種方式不會(huì)對內(nèi)存資源要求太高,速度也會(huì)很快!

  3、對文件及文件夾的操作:   

  對文件的操作包括"下載"和"刪除"兩種,在上面列表顯示指定文件夾中內(nèi)容時(shí),針對文件,有這樣的語句:

  dr[2]="下載";//建立聯(lián)接地址 

  其中,url是指定文件對應(yīng)的服務(wù)器路徑。 通過這樣的鏈接將文件定位到服務(wù)器上的對應(yīng)位置。視文件格式的不同,客戶端可以下載文件到本機(jī)上,也可以就在服務(wù)器上打開它。

  刪除文件很簡單,.Net的IO命名空間的File類庫有這樣的方法:

  File.Delete(string filename);其中,filename為文件的完整路徑

  你需要注意的是,文件的刪除將不需要驗(yàn)證,要防止文件被刪除,你需要依照下面的方式來進(jìn)行。(當(dāng)然,程序中為避免文件誤刪除提供了確認(rèn)驗(yàn)證,文件夾刪除也一樣。   

  對文件夾的操作分為:進(jìn)入或者刪除。如果文件夾在創(chuàng)建時(shí)被設(shè)置"進(jìn)入受限"或者"刪除受限",用戶在執(zhí)行這樣的操作時(shí)將被要求密碼驗(yàn)證,只有通過驗(yàn)證才能完成相應(yīng)的操作,這種方式保護(hù)了你的文件被非法訪問或刪除。  

  相對文件的刪除,文件夾的刪除程序要稍微復(fù)雜些,.Net的Directory類庫提供的方法Delete()只能刪除空文件夾,這就需要我們首先清空文件夾中內(nèi)容,然后才能完成這一操作,由于文件夾中還可能再包含有文件夾,我們通過遞歸調(diào)用來實(shí)現(xiàn)這一操作:   

  //刪除文件夾的方法

  public void DeleteFolder(string dir)

  {

   foreach(string d in Directory.GetFileSystemEntries(dir))

   {

   if(File.Exists(d))

   File.Delete(d);//直接刪除其中的文件

   else

   DeleteFolder(d);//遞歸刪除子文件夾

   }

   Directory.Delete(dir);//刪除已空文件夾

  }

   其中,參數(shù)dir是待刪除文件夾的完整路徑。程序使用循環(huán)語句,查找文件夾中的內(nèi)容,是文件則直接刪除,如果是文件夾,則遞歸調(diào)用方法自身來刪除子文件夾,文件夾清空后再完成刪除操作。

  4、文件上傳:   

  要實(shí)現(xiàn)網(wǎng)絡(luò)硬盤的功能,必須要有可供操作的文件,這些文件來自于客戶端的上傳(當(dāng)然,服務(wù)器端也能提供這些文件,但這不是網(wǎng)絡(luò)硬盤的重點(diǎn)),過去我們實(shí)現(xiàn)文件的上傳,在Asp中通常是使用第一些文件上傳組件,比如Microsoft 的PostingAcceptor組件,另外還有第三方提供的一些付費(fèi)組件(不過說真的,這些組件并不好用)。那時(shí)候想要自己開發(fā)這樣的文件上傳組件,相當(dāng)繁瑣;而現(xiàn)在,.Net提供的類庫HttpPostedFile和HttpFilesCollection可以很容易地訪問上載到服務(wù)器的文件,同時(shí)使開發(fā)人員控制文件上載過程。其中的HttpPostedFile類封裝已經(jīng)上傳到服務(wù)器的文件對象,其方法和屬性提供對每個(gè)文件的內(nèi)容和屬性的訪問;HttpFileCollection類則為多個(gè)HttpPostedFile對象提供一個(gè)容器,用作保存上傳給服務(wù)器的數(shù)據(jù)結(jié)構(gòu)的類,這樣你就可以利用被傳送的文件集合,該文件集合可通過其Files屬性從HttpRequest 對象訪問,一旦服務(wù)器接收了請求的整個(gè)內(nèi)容,該集合就可以訪問。這些內(nèi)置的組件使得Asp.net中實(shí)現(xiàn)文件上傳相當(dāng)容易,甚至只需要幾行代碼就可以了!關(guān)于Asp.net中實(shí)現(xiàn)文件上傳的文章很多,這里不做專門的闡述,需要的話你可以參考那些文章,這里,只提示你需要注意以下幾點(diǎn):   

  1)、客戶端表單的編碼類型Enctype 設(shè)置為multipart/form-data的MIME格式,提交表單使用Http的post方法,象下面這樣:

  


  runat="server" >

  2)、HttpInputFile控件運(yùn)行在服務(wù)器端,設(shè)置runat=server,type=file ,象下面這樣:   

  

  3)、要上傳多個(gè)文件,你可以布置多個(gè)HttpInputFile控件,然后使用HttpRequest.Files來獲取這些文件。

  5、環(huán)境配置文件Web.config的處理:

  在中文狀態(tài)下,你可能需要將全球化設(shè)置編碼由默認(rèn)的"Utf-8"改為"gb2312",語句如下:

  

   requestEncoding="gb2312"

   responseEncoding="gb2312"

   />

  同時(shí),Web.config默認(rèn)設(shè)置的的文件大小限制可能并不能滿足你的需要,你或許需要將限制尺度放大一些。這通過修改參數(shù)maxRequestLength的值來實(shí)現(xiàn),如下所示:

  

  

  


  6、隨時(shí)跟蹤"當(dāng)前路徑"值:

  程序中的另一個(gè)關(guān)鍵點(diǎn)是關(guān)于"當(dāng)前路徑"的,由于你總是需要在不同的文件夾之間跳轉(zhuǎn):點(diǎn)擊"進(jìn)入"到達(dá)下一級文件夾,點(diǎn)擊"上一級文件夾"返回前一級文件夾;而所有這些文件夾的內(nèi)容都通過同一個(gè)頁面(Default.aspx)來顯示,這個(gè)顯示頁面被設(shè)置為始終顯示當(dāng)前文件夾下內(nèi)容。在你傳送查詢字符串來調(diào)用它時(shí),你需要在查詢字符串中包含當(dāng)前路徑的完整表示,這在程序中通過設(shè)置一個(gè)靜態(tài)變量來實(shí)現(xiàn):public static string currFullPath=""; 當(dāng)前路徑發(fā)生改變時(shí),總是將這個(gè)路徑值傳送給這個(gè)靜態(tài)標(biāo)量:currFullPath=Request["path"];這就使得這個(gè)靜態(tài)變量始終存儲(chǔ)著當(dāng)前的路徑值,以這個(gè)靜態(tài)變量為查詢字符串調(diào)用顯示頁: Response.Redirect("Default.aspx?path="+currFullPath)就總能顯示當(dāng)前文件夾下的內(nèi)容了!

  參考資料:

  《Asp.net程序員參考手冊》、《XML高級編程》、《C#高級編程》、微軟MSDN

  運(yùn)行環(huán)境:

  程序在:Windows XP中文正式版、.Net Frameworks 正式版、Visual Studio.Net中文正式版下調(diào)試通過,在局域網(wǎng)(總部+多個(gè)異地子公司模式)上穩(wěn)定運(yùn)行

本新聞共2頁,當(dāng)前在第2頁  1  2  

 
收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

·淺析五大ASP.NET數(shù)據(jù)控件
·Discuz!NT 3.1 為ASP.net社區(qū)提速 
·淺析五大ASP.NET數(shù)據(jù)控件
·ASP.NET全局異常處理的方法
·asp.net實(shí)現(xiàn)驗(yàn)證碼
·ASP.NET中在線用戶統(tǒng)計(jì)
·用ASP.NET加密口令
·在ASP.NET中使用Microsoft Word文檔
·用ASP.NET構(gòu)建簡單的Web Form 
·ASP.Net中自定義Http處理及應(yīng)用之HttpModul
·用ASP.NET開發(fā)Web服務(wù)的五則技巧

 
 
 
 
最新文章

中關(guān)村艷照門女主角詳記錄高清組圖 
大連護(hù)士門大尺度艷照高清組圖
iPhone女孩微博爆紅 最寶貴東西換iPhon
反恐精英之父內(nèi)維爾:改變電腦游戲銷售
團(tuán)購網(wǎng)站黎明之前:中國市場慘烈廝殺不
團(tuán)購鼻祖Groupon中國揭秘:快與慢的商業(yè)
Spil Games發(fā)布新的品牌形象
1800配置一臺(tái)主機(jī) 不要顯示器
聯(lián)想V360筆記本模特寫真
愛國者第四代移動(dòng)硬盤將面市、低電壓保

 
推薦文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆紅 最寶貴東西換
大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組
蘋果員工中毒門
宮如敏不雅照瘋傳 看張馨予韓一菲
深耕市場 永續(xù)經(jīng)營——專訪百腦匯
優(yōu)派專業(yè)電子書 讓您回家旅途多姿
揭曉百萬大獎(jiǎng)三星bada魅力綻放中
大明龍權(quán)“江湖英雄會(huì)”全國PK大
永恒之塔校園達(dá)人挑戰(zhàn)賽完美落幕
八卦圖解 More>>
iPhone女孩微博爆紅 最寶貴東西換 大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組 宮如敏不雅照瘋傳 看張馨予韓一菲