<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲狠狠婷婷综合久久| 中中文字幕亚洲无线码| 一个人免费观看www视频| 日本一道高清不卡免费| 亚洲一线产区二线产区区| 妻子5免费完整高清电视| 免费国产黄网站在线看| 亚洲 无码 在线 专区| 亚洲va中文字幕无码久久| 香蕉免费看一区二区三区| 亚洲香蕉网久久综合影视| a毛片久久免费观看| 亚洲一区二区三区四区在线观看| 日韩免费电影网站| 亚洲色偷偷偷网站色偷一区| 国产福利在线免费| 亚洲AV成人无码久久WWW| 亚洲成?Ⅴ人在线观看无码| 中文在线免费观看| 日本午夜免费福利视频| 在线91精品亚洲网站精品成人| 精品免费久久久久久久| 亚洲AV色吊丝无码| a国产成人免费视频| 久久久久亚洲精品无码蜜桃| 日韩一区二区a片免费观看| 小说专区亚洲春色校园| 男女免费观看在线爽爽爽视频| 亚洲日本成本人观看| 亚洲高清视频一视频二视频三| 伊人久久大香线蕉免费视频| 亚洲国产精品美女| 国产美女被遭强高潮免费网站| 久青草视频在线观看免费| 亚洲精品一卡2卡3卡三卡四卡| 四虎影院在线免费播放| 久久久精品视频免费观看| 亚洲欧洲高清有无| 亚洲成aⅴ人片久青草影院| 久久中文字幕免费视频| 亚洲成av人无码亚洲成av人|