很多人是用 IIS(Internet Information Services) 來架站,
我卻是用它來傳 10MB 以上的檔案給別人!
(設定好後,我會用 Windows Live Messenger 告知要下載的人下載網址)
因為直接用 MSN 傳檔有些缺點:
(1)速度不穩定、(2)中斷後不能續傳、(3)不能顯示為離線。
用 http 傳檔就不會有這些困擾。

IIS 從 Windows XP 內建的 5.1 版本開始,
對一些檔案格式就有所限制,
如果不調整預設值的設定,
下載者就無法下載副檔名為「ISO」、「RAR」這些類型的檔案。
調整的方式很簡單,
只要在要設定的網站上按滑鼠右鍵,選「內容」,
再到「HTTP 標頭」頁籤,按下〝MIME 對應〞項下的「檔案類型」按鈕,
然後再按「新類型」按鈕,〝相關的副檔名〞欄位填入「iso」、〝內容類型(MIME)〞欄位填入「application/iso」,
最後再按確定,這樣就大功告成了!(頂多需要再重新啟動網站)

前幾天要傳一個超過 2GB 的檔案給朋友,
突然發現使用以上的設定怎麼失效了!
換了一個一百多 MB 的檔案,卻又可以!
用 Google 搜尋到的結果是:
IIS 本身並不支持文件大小超出 2GB 的文件下載
因為受限於 wininet.dll 內的 API 用 4 bytes Integer 來傳輸,所以檔案上限綁在 2 GB

這個限制似乎只有 Windows XP 的 IIS 5.1 才有,
Windows Server 2003/2008 則無此限制,
我在 Windows Vista Home Premium 的 IIS 7 上放了一個 8.8GB 的 GHO 檔,
結果是:可以順利傳檔!
另外,下載時用 Firefox 3 較準,因為 IE 下載超過 4GB 的檔案會有些問題,
那個 8.8GB 的檔案,用 IE6 下載時會出現正在下載的檔案是 800MB 的畫面!
(用 IE 下載時單一檔案大小不超過 4GB,超過的話會先減 4GB,還是超過的話再減 4GB,
以此類推,一直減到小於 4GB,
也就是:8.8GB-4GB=4.8GB > 4GB → 4.8GB-4GB=0.8GB < 4GB,
所以下載畫面才會顯示檔案大小是 800MB)
但用 Firefox 則會出現下載的檔案是 8.8GB 的正常畫面。
(IE7、IE8 Beta 似乎也是如此,這個 Bug 要看 IE8 正式版發佈時會不會修正)

現在很多檔案都很容易超過 2GB,
就連 DVD 影片的 ISO 檔也大多是 4GB 以上的,
切割檔案為小塊文件來處理倒也不是難題,
只是下載者未必懂得合併的方法!

於是,我就找了兩個免費而且是中文介面的架站軟體來取代 IIS 5.1,
第一個是「Swallow」,
缺點是太陽春(不過只是傳個檔,陽春點反而好用),
優點是不必安裝、設定容易,
下載網址是:
http://ftp.isu.edu.tw/pub/Windows/softking/soft/tw/s/swallow152cht.zip
操作方式可以查看其中的 readme.txt。
第二個是弈飛資訊的「Rainbow Web Server」(彩虹網站伺服器)〝家用版〞,
缺點是服務啟動時,PC 喇叭會「嗶」一聲(調整設定時也會),
優點是功能較強大!
(可任意設定瀏覽帳號及密碼,
IIS 必須藉助 NTFS 檔案系統搭配 Windows 帳戶作權限設定才辦得到)

這兩款軟體都可以處理超過 2GB 的檔案
(不過還是不能處理 4GB 以上的檔案,
如需處理 4GB 以上的檔案,可以參考「超棒的 Abyss Web Server!」這一篇文章),
也都可以進行 MIME 的設定,
不過使用「Rainbow Web Server」時,
有時需要重新啟動服務測試是否能成功傳檔,
不然會造成下載者一直下載 0 位元組的假檔!

當然,不管你是使用 IIS、Swallow 或 Rainbow Web Server,
使用前記得不能有重覆的 Port 開啟,不然會發生執行錯誤。

arrow
arrow
    全站熱搜

    terryhung 發表在 痞客邦 留言(0) 人氣()