asp.net 網(wǎng)絡(luò)硬盤實(shí)現(xiàn)分析
網(wǎng)絡(luò)硬盤的功能要求:
● 用戶登錄、注銷、用戶注冊
● 新建文件夾、上傳文件
● 查看文件屬性(包括:名稱,所在目錄,類型,大小,創(chuàng)建時(shí)間)
● 刪除文件
● 更換文件圖標(biāo)(分為大圖標(biāo)和小圖標(biāo))
● 通過搜索找到自己的文件并可以下載
進(jìn)入時(shí)需有用戶名和密碼方能進(jìn)入,有效的保護(hù)了文件的機(jī)密。
網(wǎng)絡(luò)硬盤的開發(fā)其實(shí)很簡單,主要使用了類庫Io,用來實(shí)現(xiàn)對文件的操作,采取了數(shù)據(jù)庫和物理路徑相對應(yīng)映射的方式完成的,下面就來簡單說說其主要的幾個(gè)點(diǎn):
首先是數(shù)據(jù)庫設(shè)計(jì)這塊,根據(jù)自己的需求設(shè)計(jì)出最適合的數(shù)據(jù)庫,我設(shè)計(jì)的數(shù)據(jù)庫分3個(gè)表,T_User,T_FileType,T_FileInfo
T_User
T_FileType
T_FileInfo
其次,我們知道網(wǎng)絡(luò)硬盤是滿足很多用戶的需求的,所以每個(gè)用戶都有屬于自己的空間,這就要求我們在頁面中要用登錄和注冊功能,這里要提到的就是在注冊的時(shí)候我們就要相應(yīng)位用戶分配空間,名稱最好不要直接用登錄名,可以采取映射的方式命名,如:用戶名是admin,那么物理路徑的目錄名就可以為adminDir,adminFile等等,主要是從安全方面考慮的,注冊完用戶后就會(huì)在物理空間中顯示初始創(chuàng)建的幾個(gè)文件夾
下面就是要對文件操作的幾點(diǎn)了
對文件的操作首先要保證數(shù)據(jù)庫與物理路徑要保持一致,比如說增加一個(gè)文件,物理路徑添加了,數(shù)據(jù)庫也要有相應(yīng)的增加記錄才可以,沒什么大的問題,在這里把下載的代碼貼出來:
private void FileDownload(string FullFileName)//下載
{
FileInfo DownloadFile = new FileInfo(FullFileName); //設(shè)置要下載的文件
Response.Clear(); //清除緩沖區(qū)流中的所有內(nèi)容輸出
Response.ClearHeaders(); //清除緩沖區(qū)流中的所有頭
Response.Buffer = false; //設(shè)置緩沖輸出為false
//設(shè)置輸出流的 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 內(nèi)容輸出流。
Response.WriteFile(DownloadFile.FullName);
Response.Flush(); //向客戶端發(fā)送當(dāng)前所有緩沖的輸出
Response.End(); //將當(dāng)前所有緩沖的輸出發(fā)送到客戶端
}
修改和轉(zhuǎn)移的邏輯很相似,修改目錄名稱的時(shí)候,就是新建一個(gè)目錄,然后通過子目錄移到新目錄下面,在數(shù)據(jù)庫中采用遞歸修改子目錄和文件的路徑名稱,修改文件就更簡單了,轉(zhuǎn)移也同樣如此...
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之文件夾實(shí)現(xiàn)
- ASP.NET+XML打造網(wǎng)絡(luò)硬盤原理分析
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之兩重要類代碼
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之查看文件夾實(shí)現(xiàn)代碼
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之上傳文件實(shí)現(xiàn)代碼
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之下載或在線查看實(shí)現(xiàn)代碼
- ASP.NET設(shè)計(jì)網(wǎng)絡(luò)硬盤之刪除文件夾實(shí)現(xiàn)代碼
- Asp.net mvc實(shí)時(shí)生成縮率圖到硬盤
相關(guān)文章
ASP.NET MVC5網(wǎng)站開發(fā)文章管理架構(gòu)(七)
繼上一篇把member的用戶部分完成,現(xiàn)在開始做文章管理部分。文章部分根據(jù)涉及顯示現(xiàn)實(shí)文章列表,發(fā)布文章,修改和刪除文章等功能。最終的實(shí)現(xiàn)目標(biāo)是使用權(quán)限來控制用戶是否能進(jìn)行相應(yīng)操作,管理員權(quán)限的會(huì)顯示全部文章列表和我的文章列表,普通用戶只顯示我的文章列表2015-09-09基于asp.net下使用jquery實(shí)現(xiàn)ajax的解決方法
本文以最簡單的方法為新手示范如何使用jquery實(shí)現(xiàn)ajax技術(shù)(所以本文是專為新手所寫,老鳥勿噴,大神此處省略一萬字)。至于什么是jquery什么是ajax,自己谷歌去2013-05-05關(guān)于.net環(huán)境下跨進(jìn)程、高頻率讀寫數(shù)據(jù)的問題
最近老大教給我一個(gè)項(xiàng)目,項(xiàng)目要求高頻次地讀寫數(shù)據(jù),數(shù)據(jù)量也不是很大,難點(diǎn)在于這個(gè)規(guī)模的熱點(diǎn)數(shù)據(jù),變化非常頻繁,下面把我的處理方法分享到腳本之家平臺,對.net跨進(jìn)程高頻率讀寫數(shù)據(jù)相關(guān)知識感興趣的朋友跟隨小編一起學(xué)習(xí)下吧2021-05-05.Net整合Json實(shí)現(xiàn)REST服務(wù)客戶端的方法詳解
這篇文章主要給大家介紹了關(guān)于.Net整合Json實(shí)現(xiàn)REST服務(wù)客戶端的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01asp.net core利用AccessControlHelper實(shí)現(xiàn)控制訪問權(quán)限
這篇文章主要給大家介紹了關(guān)于asp.net core利用AccessControlHelper實(shí)現(xiàn)控制訪問權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用asp.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10.NET?6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)DELETE請求與HTTP請求冪等性
這篇文章主要介紹了在.NET6開發(fā)中如何實(shí)現(xiàn)DELETE請求以及HTTP請求冪等性的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12