
onedump
OneDump 存儲空間還是無限制大小的,不過單個文件只有最大5MB,且同時傳出10個文件,可用于存儲一些文檔之類的東西。
網(wǎng)絡(luò)硬盤的優(yōu)勢網(wǎng)絡(luò)硬盤(也稱共享空間),是服務(wù)器上的一塊硬盤空間,在這里,如果你具備足夠的權(quán)限,你可以對它隨意操作,就象使用你的本地計算機一樣。要知道,這一切以Http的方式傳輸,以Web的形式展現(xiàn)在所有用戶面前,通過瀏覽器這種熟悉的方式訪問,這樣,"一塊空間,資源互見"的共享模式得以實現(xiàn)!此外,網(wǎng)絡(luò)硬盤界面在客戶端運行,它允許用戶提交數(shù)據(jù)到服務(wù)器,然后在指定的范圍內(nèi)管理這些信息,這種處理模式大量使用在實際開發(fā)中,尤其是在構(gòu)建交互式網(wǎng)絡(luò)文檔管理系統(tǒng)方面:網(wǎng)上考試系統(tǒng)、文件傳輸系統(tǒng)、新聞發(fā)布系統(tǒng)以及公司競標(biāo)系統(tǒng)等方面都有大量應(yīng)用! 以下使用Asp.net(Visual C#語言實現(xiàn))和Xml(可擴展標(biāo)記語言)開發(fā)了這樣的網(wǎng)絡(luò)硬盤系統(tǒng)。關(guān)于程序的開發(fā)細(xì)節(jié)及代碼中使用的關(guān)鍵技術(shù)和難點,都有詳細(xì)的講解,參照這些說明,你完全可以開發(fā)出自己的網(wǎng)絡(luò)硬盤。
網(wǎng)絡(luò)硬盤實現(xiàn)的功能
我們的網(wǎng)絡(luò)硬盤實現(xiàn)了以下功能:
1、查看文件夾內(nèi)容
2、創(chuàng)建新文件夾同時可設(shè)置訪問權(quán)限
3、文件夾間的跳轉(zhuǎn):進入下一級,返回上一級
4、上傳文件到指定文件夾
5、下載文件到本機或在線查看文件內(nèi)容
6、刪除文件或文件夾
開發(fā)細(xì)節(jié)及技術(shù)關(guān)鍵點
1、查看文件夾內(nèi)容:程序一開始將進入指定的根文件夾(如\NetHard),這個文件夾下的內(nèi)容將通過數(shù)據(jù)綁定控件(DataGrid)來列表顯示,包括以下方面:類別(區(qū)別文件夾或文件)、名稱、權(quán)限(是否允許進入文件夾?是否可以下載文件?)、刪除(是否允許刪除文件或文件夾?)以及針對文件夾的創(chuàng)建者。這里,由于文件夾中內(nèi)容動態(tài)變化(你不知道什么時候就有用戶傳送了文件或新建了文件夾或刪除了它們),我們通過動態(tài)創(chuàng)建數(shù)據(jù)表DataTable來讀取指定文件夾下的內(nèi)容, 然后作為數(shù)據(jù)源與顯示控件DataGrid綁定,這樣,數(shù)據(jù)的顯示就總是適時的。創(chuàng)建動態(tài)表的函數(shù)如下: public DataTable Bind(string fullFolderPath)//創(chuàng)建數(shù)據(jù)表讀取文件夾內(nèi)容
{
//以下是動態(tài)創(chuàng)建數(shù)據(jù)表的方法
DataTable dt=new DataTable();
DataRow dr;
//首先創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)
dt.Columns.Add(new DataColumn("type",System.Type.GetType("System.String"))); //類型
dt.Columns.Add(new DataColumn("name",System.Type.GetType("System.String"))); //名稱
dt.Columns.Add(new DataColumn("action",System.Type.GetType("System.String"))); //操作
dt.Columns.Add(new DataColumn("owner",System.Type.GetType("System.String"))); //創(chuàng)建人
//為每一行填充數(shù)據(jù)
foreach(string d in Directory.GetFileSystemEntries(fullFolderPath)){
dr=dt.NewRow(); //建新行
string[] parts=d.Split(new char[]{'\\'});
string txt=parts[parts.Length-1]; //取最后一部分的字符串,它將可能是文件名或文件夾
dr[1]=txt; //名稱name
if(File.Exists(d))//如果是文件
{
dr[0]="文件"; //類型type
int pos=currFullPath.IndexOf("NetHard");
string relaUrl=currFullPath.Substring(pos);
string
url="http://10.80.50.1/SharedSpace/"+relaUrl+"/"+txt; //
10.80.50.1為作者服務(wù)器地址,你應(yīng)該將它修改為你所在服務(wù)器地址
dr[2]="下載";
}
else if(Directory.Exists(d)){//如果是文件夾
dr[0]="文件夾"; //type類型
string password=GetFolderPassword(d); //取得文件夾密碼信息
int type=GetFolderLimitType(d);
if((password!="no")&&(type!=1))
dr[2]="href=PasswordValidate.aspx?path="+d+">密封"; //操作action
else
dr[2]="進入"; //操作action
dr[3]=GetFolderOwner(d); //取文件夾創(chuàng)建者名
}
else
Response.Write("");
dt.Rows.Add(dr); //添加行
return dt; //返回數(shù)據(jù)表
}