通常在 Unix/Linux/BSD 等環境,都可利用 file 這個指令看出該檔案屬性來,而不會從其副檔名來判斷。所以您的 file server 平台若是 *nix 的話,就利用 file 來檢查其檔案屬性。
在 [RoR] 以資料庫為依據的上傳下載及列檔功能 其中就是以
<pre class="c" name="code">file -bi 檔名
來獲得上傳檔的屬性而記錄。
若您是在 windows 平台的話,那麼可以參考:
An MS-Windows (Win32) port of File-4.17 is available from
http://gnuwin32.sourceforge.net/
其下載的壓縮檔不到 3 MB,裝上就可以有像 *nix 上常用的工具程式,若您 file server 是可以改程式的話,就可以利用這外部指令來做判斷檔案的動作。
至於要檢查壓縮檔中,有沒有不允許的檔案屬性,基本處理的邏輯程序是:上傳的檔案屬性若是壓縮格式,則用對的壓縮工具解開,再將裡面一個一個檔案再檢查其屬性,如果都沒有禁止的格式,才會上傳成功。
你可以使用Windows Server 2003 R2裏的檔案伺服器資源管理員來達到這個目的。