国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Asp.NET大文件上傳組件開發(fā)總結(jié)(六)---大文件上傳組件使用說明

1編寫目的

為了方便用戶使用大文件上傳組件,特寫使用說明書,以指明調(diào)用組件的接口,操作流程和注意事項(xiàng)。

2背景

由于ASP.NET在上傳文件時(shí),是全部裝入服務(wù)器內(nèi)存,在上傳文件時(shí),消耗服務(wù)器資源較多,且不能提供上傳進(jìn)度顯示,由于消耗服務(wù)器資源較多,所以ASP.NET上傳文件時(shí)往往大小受到限制。此組件解決了所有這些問題

3定義

大文件:大文件主要意思是指大小不受限制,

Web.config:是ASP.NET的配置文件。

4功能

所有需要用ASP.NET上傳文件的地方,均可以使用本組件。本組件可以解除ASP.NET對(duì)上傳文件大小的限制,同時(shí)提供上傳進(jìn)度提示,用戶還可以選擇中斷上傳過程。減少對(duì)服務(wù)器資源的消耗(經(jīng)測(cè)試,服務(wù)器資源消耗與運(yùn)行普通ASP.NET頁面相差無幾)

5、組件主要類及操作:

5.1 BigFileUploadModuleHandle

大文件上傳處理模塊,用于在客戶端請(qǐng)求發(fā)送到服務(wù)器上后,分析請(qǐng)求內(nèi)容,如果是上傳文件,則在IIS將數(shù)據(jù)出發(fā)送到ASP.NET的管道中時(shí),讀取數(shù)據(jù),寫入文件,并重新組織請(qǐng)求內(nèi)容,重新組織的內(nèi)容是去掉了文件內(nèi)容的請(qǐng)求內(nèi)容。頁面在接收到請(qǐng)求后,除文件上傳控件不能讀取文件內(nèi)容外,其它組件的屬性可以正常訪問。

5.2 DataReader

請(qǐng)求數(shù)據(jù)分析和文件寫入。

5.3 UpFileInfo

上傳文件屬性結(jié)構(gòu),供組件內(nèi)部使用。

5.4 UploadContext

文件上傳環(huán)境,組件在使用時(shí),主要使用此類。具體有以下方法和屬性:

UploadContext:構(gòu)造函數(shù),需傳入文件上傳頁面對(duì)象和文件臨時(shí)存放目錄。外部不能直接調(diào)用些構(gòu)造函數(shù),要構(gòu)建文件上傳環(huán)境,需調(diào)用UploadContextFactory的提供的靜態(tài)方法

TmepFileDir:獲取和設(shè)置上傳臨時(shí)文件存放路徑

FileNames上傳的文件名列表

TotalLength發(fā)送信息總長度,包括頁面所有控件請(qǐng)求內(nèi)容

Readedlength已接收的信息長度 包括面頁控件請(qǐng)求內(nèi)容

StartReadDateTime開始接收時(shí)間    

FileConIds頁面文件上傳控件ID列表,對(duì)文件上傳控件在服務(wù)器端運(yùn)行時(shí),為控件的UniqueID

GUID:上傳文件唯一標(biāo)志

Abort :設(shè)置和讀取是否中斷上傳過程

Ratio上傳速率,返回每秒上傳的字節(jié)數(shù)

FormatRatio獲取格式化的上傳速度,以適當(dāng)?shù)淖止?jié),K字節(jié),M字節(jié)表示

LeftTime估計(jì)上傳剩余時(shí)間,以秒為單位

FormatLeftTime獲取格式上的上傳剩余時(shí)間,適當(dāng)?shù)囊孕r(shí),分鐘,秒表示

CurrentFile當(dāng)前正在處理的上傳文件

Status上傳狀態(tài)

FormatStatus 以字符串格式,返回當(dāng)前上傳操作的狀態(tài)

SaveFile另存上傳的數(shù)據(jù)文件,此方法主要將文件從臨時(shí)存放目錄移到用戶需要求的目錄,由于采取移動(dòng)文件辦法,所以此方法調(diào)用成功后,臨時(shí)文件對(duì)應(yīng)文件將被移走。

GetFileNameByControl根據(jù)頁面文件上傳控件名稱,獲取上傳的文件名

Dispose當(dāng)前上下文環(huán)境中接收的所有文件

GetFileName :根據(jù)文件上傳控件名稱,獲取對(duì)應(yīng)的上傳的文件。

5.5 UploadContextFactory

創(chuàng)建和獲取文件上傳環(huán)境。

InitUploadContext(System.Web.UI.Page page,string TempFileDir)根據(jù)頁面對(duì)象和上傳文件臨時(shí)目錄文件夾,獲取一個(gè)文件上傳上下文類實(shí)例

GetUploadContext根據(jù)頁面發(fā)送的上傳會(huì)話編號(hào),獲取文件上傳上下文

GetUploadContext(string GUID)根據(jù)會(huì)話編號(hào)的GUID獲取文件上傳的上下文

Release在頁面邏輯處理完成后,釋放上傳上下文,并刪除臨時(shí)文件

uploadStatus:文件上傳狀態(tài)枚舉類

6 使用方法及注意事項(xiàng)

1、 將組件dll復(fù)制到應(yīng)用系統(tǒng)bin目錄,然后再VS.NET中引用本組件,

2、 web.config增加ASP.NET處理模塊

<httpModules>

<add name="BigFileUploadModuleHandle " type="HelpSoft.BigFileUploadModuleHandle,BigFileUploadHandle" />

</httpModules>

3、 在要上傳文件的asp.net頁面的頁面裝入事件中或初始化事件中,初始化文件上傳環(huán)境,注冊(cè)文件上傳存放的臨時(shí)文件夾,如下面代碼:

private void Page_Load(object sender, System.EventArgs e)

{

       UploadContext context = UploadContextFactory.InitUploadContext(this, @"c:" myupload"");

}

提示:A、文件存放目錄要求設(shè)置相應(yīng)的訪問權(quán)限,目錄必須存在

      B、初始化上傳環(huán)境后,頁面須在一天內(nèi)發(fā)送文件。否則上傳環(huán)境失效。

      C、初始化上傳環(huán)境時(shí),組件將在頁面內(nèi)注冊(cè)隱藏域,記錄上傳會(huì)話唯一標(biāo)志。隱藏域命名為UploadID,頁面不能有同名控件。

        D、需要上傳文件表單編碼方式必須為multipart/form-data,(對(duì)于文件上傳控件作為服務(wù)器端控件運(yùn)行時(shí),系統(tǒng)會(huì)自動(dòng)加入此編碼方式,否則需用戶手工添加)

        E、要使本上傳組件生效,必須在頁面訪問時(shí)初始化上傳環(huán)境,和設(shè)置表單編碼方式,反之,如不希望本組件對(duì)特定頁面生效,只可取消前兩條件之一。

4、 在文件上傳提交事件中,直接從上傳文件環(huán)境工廠類中獲取文件上傳環(huán)境,進(jìn)一步獲取上傳的文件信息。類似代碼如下:

UploadContext context = UploadContextFactory.GetUploadContext();

string FileName = context.GetFileNameByControl(resFile.UniqueID);

string filePath=@"c:"workdir";           

if (context.SaveFile(resFile.UniqueID,filePath+FileName))

{

       UploadContextFactory.Release();

}

提示:A、根據(jù)控件名獲取對(duì)應(yīng)的上傳文件信息時(shí),對(duì)服務(wù)器控件需要傳入控件唯一標(biāo)志,對(duì)非服務(wù)器控件,需傳入控件名稱。

       B、對(duì)文件另存時(shí)的目錄訪問權(quán)限,是否存在、可用空間大小,由頁面調(diào)用者檢查處理。如此類型錯(cuò)誤發(fā)生,系統(tǒng)將引發(fā)對(duì)應(yīng)異常。

C、如沒找到控件對(duì)應(yīng)文件(可能是客戶端沒有指定文件或傳的控件標(biāo)志有誤)、臨時(shí)目錄中對(duì)應(yīng)文件也不存在(已成功調(diào)用過此方法,文件已被移走),本方法將返回假,操作成功后,方法返回真。

D、UploadContextFactory.Release()將從系統(tǒng)緩存中清除上傳環(huán)境對(duì)象,將不能用GetUploadContext方法獲取上傳環(huán)境,但已取得的上傳環(huán)境仍然可用。

5、 讀取文件上傳進(jìn)度時(shí),需另建一個(gè)ASPX頁面,讀取進(jìn)度主要是根據(jù)上傳文件的會(huì)話唯一標(biāo)志,從系統(tǒng)緩存中(通過GetUploadContext(string GUID)方法))獲取上傳文件環(huán)境,訪問此環(huán)境類,即可以獲取文件上傳開始時(shí)間、信息總長度、當(dāng)前已傳送信息長度、速度、估計(jì)剩余時(shí)間等信息。系統(tǒng)再使用定時(shí)刷新的辦法,不斷獲得上傳進(jìn)度信息,即可形成上傳進(jìn)度提示。

進(jìn)度顯示可以使用XML無回刷新方式,也可以使用頁面定時(shí)刷新方式。

6、 要在傳輸過程中,中斷傳輸入過程,只需用會(huì)話唯一標(biāo)志,獲取上傳環(huán)境,將一上傳環(huán)境的abort屬性設(shè)為真,系統(tǒng)將主動(dòng)與客戶端斷開連接,中斷上傳過程,同時(shí)頁面提交的其它數(shù)據(jù)也將取消。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
c#中bin,obj,debug,release,properties文件夾的作用
組件化的前端開發(fā)流程
【第676期】使用React重構(gòu)百度新聞webapp前端
什么是 ASP/ASP+/ASP.NET
在Win 2003中配置ASP.net環(huán)境
[yui][譯]Yahoo!User Interface Libray
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服