<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    GONE WITH THE WIND

    --tomorrow is another day

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      30 隨筆 :: 19 文章 :: 0 評論 :: 0 Trackbacks
    最近做在做一個項目,涉及到文件上傳的問題。 以前也做過文件上傳。但都是些小文件,不超過2M。 這次要求上傳1G以上的東西。 沒辦法找來資料研究了一下。 基于WEB的文件上傳可以使用FTP和HTTP兩種協議,用FTP的話雖然傳輸穩定,但安全性是個嚴重的問題,所以沒有考慮。 剩下只有HTTP。 在HTTP中有3種方式,PUT、WEBDAV、RFC1867,前2種方法不適合大文件上傳,在這里也不說了。
    確定使用RFC1867格式處理之后開始分析流行的上傳組件。看了N多代碼之后發現,目前無組件程序和一些COM組件都是使用Request.BinaryRead方法。一次性得到上傳的數據,然后分析處理。這就是為什么上傳大文件很慢的原因了,IIS超時不說,就算1G文件上去了,分析處理也得一陣子。 之后我把注意力放在國外商業組件上,比較流行的有Power-Web,AspUpload,ActiveFile,ABCUpload,aspSmartUpload,SA-FileUp。其中比較優秀的是ASPUPLOAD和SA-FILE,他們號稱可以處理2G的文件(SA-FILE EE版甚至沒有文件大小的限制),而且效率也是非常棒,難道編程語言的效率差這么多?(我的編程環境是VB6) 查了一些資料,覺得他們都是直接操作文件流。這樣就不受文件大小的制約。 真是個好方法。
    但老外的東西也不是絕對完美,ASPUPLOAD處理大文件后,內存占用情況驚人。1G左右都是稀松平常。我用的是3.0.0.3版。至于SA-FILE雖然是好東西但是破解難尋(郁悶死..) 失望之際,發現2款上傳組件,Lion.Web.UpLoadModule和AspnetUpload,都是.NET的,估計也是操作文件流。但是上傳速度和CPU占用率都不如老外的商業組件。
    做了個測試,LAN內傳1G的文件。ASPUPLOAD上傳速度平均是4.4M/s,CPU占用10-15,內存占用700M。SA-FILE也差不多這樣。而AspnetUpload最快也只有1.5M/s,平均是700K/s,CPU占用15-39,測試環境:PIII800,256M內存,100M LAN。我想AspnetUpload速度慢是可能因為一邊接收文件,一邊寫硬盤。資源占用低的代價就是降低傳輸速度。 但也不得不佩服老外的程序,CPU占用如此之低.....這樣2個.net的組件也被PASS.

    稍帶2個問題就是上傳進度和斷點續傳。
    顯示上傳進度比較簡單,主要是查詢用戶上傳的狀態,用Script顯示到瀏覽器中,至于無刷新顯示就要看腳本語言運用的熟練程度了。
    斷點續傳,HTTP方式是實現不了的,因為瀏覽器每次上傳文件都是從頭開始,沒有Range標簽。實現的方法只能用ActiveX。

    研究之后決定寫個CGI來處理文件上傳。 這樣可以不走IIS以免程序出錯影響網站訪問。小弟比較菜只能用VB6做,完成之后發現WIN CGI的效率簡直就是差的不能再差。索性寫個FILE SERVER,專門處理文件的上傳。但是現在遇到一個2個問題。
    一、用WINSOCK控件接收到的文本有亂碼 不知道是程序轉換時的錯誤還是WINSOCK本身垃圾,SO 換了PowerTCP的WINSOCK TOOL,情況有所好轉 亂碼沒那么多了.........準備換vb.net,直接操作socket,程序還沒做,不知道用.net接收會不會亂碼。再有就哭了。
    二、這個問題就比較初級了....接收到的文件流不能還原成文件..寒一個,

    最后就是如何高效處理文件流, 我想來想去也就只有2種方法,一是都放在內存里,然后一起處理, 二是一邊接收一邊寫文件。 但這2種方法都不盡如人意思
    posted on 2009-03-26 17:00 張永耀 閱讀(125) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲综合无码精品一区二区三区| 成年性生交大片免费看| 亚洲国产综合精品中文字幕| 九九99热免费最新版| 久久久久久国产a免费观看不卡| 国产精品麻豆免费版| 亚洲男同帅GAY片在线观看| 亚洲一区中文字幕久久| 九九美女网站免费| 亚洲AV无码精品无码麻豆| 在线观看亚洲AV日韩A∨| 毛片免费在线视频| 久久亚洲AV成人无码国产电影| 国产午夜无码片免费| 久久亚洲国产伦理| 亚洲AV永久无码精品一福利| 永久免费bbbbbb视频| 狠狠热精品免费观看| 成人免费午夜无码视频| 亚洲欧美乱色情图片| 啦啦啦完整版免费视频在线观看| 亚洲免费中文字幕| 久久久久免费看成人影片| 美女在线视频观看影院免费天天看 | 免费在线看污视频| 亚洲视频日韩视频| 日本成人免费在线| 久久久久女教师免费一区| 亚洲色大成网站www永久| 免费黄色毛片视频| 久久久精品视频免费观看| 亚洲国产精品综合一区在线| 热久久精品免费视频| 日本一区午夜艳熟免费| 亚洲中文无码线在线观看| 成人伊人亚洲人综合网站222| 亚洲一级毛片免费观看| 四虎影视在线永久免费看黄 | 人人公开免费超级碰碰碰视频| 成人毛片免费在线观看| 久久精品无码专区免费|