• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ASP.NET+XML打造網絡硬盤 (3)

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    3、對文件及文件夾的操作: 對文件的操作包括"下載"和"刪除"兩種,在上面列表顯示指定文件夾中內容時,針對文件,有這樣的語句: dr[2]="<a href="+url+" target=_blank"+">下載</a>";//建立聯接地址 其中,url是指定文件對應的 服務器 路徑。 通過這樣
         3、對文件及文件夾的操作:
      
        對文件的操作包括"下載"和"刪除"兩種,在上面列表顯示指定文件夾中內容時,針對文件,有這樣的語句:
      
      dr[2]="<a href="+url+" target=_blank"+">下載</a>";//建立聯接地址
      
        其中,url是指定文件對應的服務器路徑。 通過這樣的鏈接將文件定位到服務器上的對應位置。視文件格式的不同,客戶端可以下載文件到本機上,也可以就在服務器上打開它。
      
        刪除文件很簡單,.net的IO命名空間的File類庫有這樣的方法:
      
      File.Delete(string filename);其中,filename為文件的完整路徑
      
        你需要注意的是,文件的刪除將不需要驗證,要防止文件被刪除,你需要依照下面的方式來進行。(當然,程序中為避免文件誤刪除提供了確認驗證,文件夾刪除也一樣?。?
      
        對文件夾的操作分為:進入或者刪除。如果文件夾在創建時被設置"進入受限"或者"刪除受限",用戶在執行這樣的操作時將被要求密碼驗證,只有通過驗證才能完成相應的操作,這種方式保護了你的文件被非法訪問或刪除。
      
        相對文件的刪除,文件夾的刪除程序要稍微復雜些,.Net的Directory類庫提供的方法Delete()只能刪除空文件夾,這就需要我們首先清空文件夾中內容,然后才能完成這一操作,由于文件夾中還可能再包含有文件夾,我們通過遞歸調用來實現這一操作:
      
      //刪除文件夾的方法
      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);//刪除已空文件夾
      }
      
        其中,參數dir是待刪除文件夾的完整路徑。程序使用循環語句,查找文件夾中的內容,是文件則直接刪除,如果是文件夾,則遞歸調用方法自身來刪除子文件夾,文件夾清空后再完成刪除操作。
      
        4、文件上傳:
      
        要實現網絡硬盤的功能,必須要有可供操作的文件,這些文件來自于客戶端的上傳(當然,服務器端也能提供這些文件,但這不是網絡硬盤的重點),過去我們實現文件的上傳,在ASP中通常是使用第一些文件上傳組件,比如Microsoft 的PostingAclearcase/" target="_blank" >cceptor組件,另外還有第三方提供的一些付費組件(不過說真的,這些組件并不好用)。那時候想要自己開發這樣的文件上傳組件,相當繁瑣;而現在,.Net提供的類庫HttpPostedFile和HttpFilesCollection可以很容易地訪問上載到服務器的文件,同時使開發人員控制文件上載過程。其中的HttpPostedFile類封裝已經上傳到服務器的文件對象,其方法和屬性提供對每個文件的內容和屬性的訪問;HttpFileCollection類則為多個HttpPostedFile對象提供一個容器,用作保存上傳給服務器的數據結構的類,這樣你就可以利用被傳送的文件集合,該文件集合可通過其Files屬性從HttpRequest 對象訪問,一旦服務器接收了請求的整個內容,該集合就可以訪問。這些內置的組件使得ASP.NET中實現文件上傳相當容易,甚至只需要幾行代碼就可以了!關于Asp.net中實現文件上傳的文章很多,這里不做專門的闡述,需要的話你可以參考那些文章,這里,只提示你需要注意以下幾點:
      
        1)、客戶端表單的編碼類型Enctype 設置為multipart/form-data的MIME格式,提交表單使用Http的post方法,象下面這樣:
      
      <form id="form1" method="post" enctype="multipart/form-data/form-data"
      runat="server" >
      
        2)、HttpInputFile控件運行在服務器端,設置runat=server,type=file ,象下面這樣:
      
      <INPUT id="fileUp" type="file" size="6" runat="server">
      
        3)、要上傳多個文件,你可以布置多個HttpInputFile控件,然后使用HttpRequest.Files來獲取這些文件。
      
        5、環境配置文件Web.config的處理:
      
        在中文狀態下,你可能需要將全球化設置編碼由默認的"Utf-8"改為"gb2312",語句如下:
      
      <globalization
      requestEncoding="gb2312"
      responseEncoding="gb2312"
      />
      
        同時,Web.config默認設置的的文件大小限制可能并不能滿足你的需要,你或許需要將限制尺度放大一些。這通過修改參數maxRequestLength的值來實現,如下所示:
      
      <!-- 設置可接受的最大字節數 -->
      <httpRuntime maxRequestLength="500000">
      </httpRuntime>
      
        6、隨時跟蹤"當前路徑"值:
      
        程序中的另一個關鍵點是關于"當前路徑"的,由于你總是需要在不同的文件夾之間跳轉:點擊"進入"到達下一級文件夾,點擊"上一級文件夾"返回前一級文件夾;而所有這些文件夾的內容都通過同一個頁面(Default.aspx)來顯示,這個顯示頁面被設置為始終顯示當前文件夾下內容。在你傳送查詢字符串來調用它時,你需要在查詢字符串中包含當前路徑的完整表示,這在程序中通過設置一個靜態變量來實現:public static string currFullPath=""; 當前路徑發生改變時,總是將這個路徑值傳送給這個靜態標量:
      
        currFullPath=Request["path"];這就使得這個靜態變量始終存儲著當前的路徑值,以這個靜態變量為查詢字符串調用顯示頁: Response.Redirect("Default.aspx?path="+currFullPath)就總能顯示當前文件夾下的內容了!
      
        參考資料:
      
      《Asp.net程序員參考手冊》、《XML高級編程》、《C#高級編程》、微軟MSDN
      
        運行環境:
      
        程序在:Windows XP中文正式版、.Net Frameworks 正式版、Visual Studio.Net中文正式版下調試通過,在局域網(總部+多個異地子公司模式)上穩定運行
      
      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>