遲江波
新疆輕工職業(yè)技術(shù)學(xué)院,新疆烏魯木齊 830021
淺析基于.NET技術(shù)的文件上傳
遲江波
新疆輕工職業(yè)技術(shù)學(xué)院,新疆烏魯木齊 830021
多媒體視頻點(diǎn)播系統(tǒng)中,上傳的問題很重要,只有提供豐富的資源,才能滿足用戶需求。而.Net技術(shù)為解決這一問題提供了一種新的方法和途徑。
.Net;大文件 ;上傳
視頻點(diǎn)播系統(tǒng)中,上傳的問題很重要,只有提供豐富的資源,才能滿足用戶需求。而.Net技術(shù)為解決這一問題提供了一種新的方法和途徑,尤其是大文件和多文件上傳方面,.Net技術(shù)存在一定的技術(shù)優(yōu)勢,這里進(jìn)行簡單的討論。
RFC1867是各種類型文件上傳中較好的方法。RFC1867主要是在HTTP的基礎(chǔ)上為INPUT增加了file屬性,同時(shí)限定了Form的method必須為POST,ENCTYPE必須為multipart/form-data,具有很好的封裝性。
用這種方法需修改程序所在目錄下的Web.config,調(diào)整上傳文件的大小限制,即maxRequestLength="102400",代碼如下:
當(dāng)文件大于100Mb,可編寫自定義HttpModule,代碼如下:
對數(shù)據(jù)流操作主要是FileStream、BinaryReader和BinaryWriter3個(gè)類,這3個(gè)類都提供同步、異步模式來存取文件數(shù)據(jù)流,根據(jù)大文件特點(diǎn),給出如下算法:
獲取 file’sname;
獲取 updata Addr,判斷DIR,若無,創(chuàng)建DIR;
檢查file是否非法,非法退出;
調(diào)用殺毒程序查毒;
判斷Server空間,無空間,退出;
檢查file是否重名,重名Rname,否則替換;
判斷file,<100Mb則一次性上傳,打開DB,上傳數(shù)據(jù)后關(guān)閉;
若<100Mb且<500Mb則啟動邊讀邊寫,打開DB,上傳數(shù)據(jù)后關(guān)閉;> 500Mb退出。
異步模式上傳是將bit分組進(jìn)行傳遞,受網(wǎng)絡(luò)因素影響低,可實(shí)現(xiàn)斷點(diǎn)續(xù)傳,
文件分割算法代碼如下:
基于.Net技術(shù)的文件上傳算法在點(diǎn)播管理系統(tǒng)中得到了很好的應(yīng)用,取得了較好的效果,為站點(diǎn)及用戶提供了很好的技術(shù)支持。
[1]戚艷軍.多文件上傳在Web應(yīng)用中的實(shí)現(xiàn)方法研究.
[2]孫占東.用ASP實(shí)現(xiàn)無組件的文件上傳.
TP37
A
1674-6708(2010)23-0208-01