asp.net 網路硬碟實現分析

來源:互聯網
上載者:User

所謂“網路硬碟”,就是將伺服器的磁碟空間提供給使用者使用,使用者可以通過它在互連網上實現檔案的上傳,下載和刪除以及檔案夾的建立與刪除。並可以通過共用檔案實現檔案的網際網路共用。 實際要求是在用戶端完成對伺服器系統檔案或檔案夾的訪問,建立和刪除等功能。

網路硬碟的功能要求:

● 使用者登入、登出、使用者註冊

● 建立檔案夾、上傳檔案

● 查看檔案屬性(包括:名稱,所在目錄,類型,大小,建立時間)

● 刪除檔案

● 更換檔案表徵圖(分為大表徵圖和小表徵圖)

● 通過搜尋找到自己的檔案並可以下載

進入時需有使用者名稱和密碼方能進入,有效保護了檔案的機密。

網路硬碟的開發其實很簡單,主要使用了類庫Io,用來實現對檔案的操作,採取了資料庫和實體路徑相對應映射的方式完成的,下面就來簡單說說其主要的幾個點:

首先是資料庫設計這塊,根據自己的需求設計出最適合的資料庫,我設計的資料庫分3個表,T_User,T_FileType,T_FileInfo

T_User

T_FileType

T_FileInfo

其次,我們知道網路硬碟是滿足很多使用者的需求的,所以每個使用者都有屬於自己的空間,這就要求我們在頁面中要用登入和註冊功能,這裡要提到的就是在註冊的時候我們就要相應位使用者指派空間,名稱最好不要直接用登入名稱,可以採取映射的方式命名,如:使用者名稱是admin,那麼實體路徑的目錄名就可以為adminDir,adminFile等等,主要是從安全方面考慮的,註冊完使用者後就會在物理空間中顯示初始建立的幾個檔案夾

下面就是要對檔案操作的幾點了

對檔案的操作首先要保證資料庫與實體路徑要保持一致,比如說增加一個檔案,實體路徑添加了,資料庫也要有相應的增加記錄才可以,沒什麼大的問題,在這裡把下載的代碼貼出來:

複製代碼 代碼如下:private void FileDownload(string FullFileName)//下載
{
FileInfo DownloadFile = new FileInfo(FullFileName); //設定要下載的檔案
Response.Clear(); //清除緩衝區流中的所有內容輸出
Response.ClearHeaders(); //清除緩衝區流中的所有頭
Response.Buffer = false; //設定緩衝輸出為false
//設定輸出資料流的 HTTP MIME 類型為application/octet-stream
Response.ContentType = "application/octet-stream";
//將 HTTP 頭添加到輸出資料流
Response.AppendHeader("Content-Disposition",
"attachment;filename=" +
HttpUtility.UrlEncode(DownloadFile.FullName.Substring(FullFileName.LastIndexOf("\\") + 1),
System.Text.Encoding.UTF8));
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
//將指定的檔案直接寫入 HTTP 內容輸出資料流。
Response.WriteFile(DownloadFile.FullName);
Response.Flush(); //向用戶端發送當前所有緩衝的輸出
Response.End(); //將當前所有緩衝的輸出發送到用戶端 
}

修改和轉移的邏輯很相似,修改目錄名稱的時候,就是建立一個目錄,然後通過子目錄移到新目錄下面,在資料庫中採用遞迴修改子目錄和檔案的路徑名稱,修改檔案就更簡單了,轉移也同樣如此...

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.