2011-01-29 47 views
3

我想驗證上傳文件的類型(假設文件有不正確的擴展名)。解決方案使用文件簽名(.NET)中的幻數驗證文件類型?

我覺得可以通過檢查文件簽名的幻數來完成。同樣,因爲它是done in unix。所以我想我需要讀取文件的第一個字節,並將它們與幻數映射進行比較(我需要映射,我需要維護它們)。

所以我想也許這裏有一堂課只是爲了這個目的?或者,也許有人已經這樣做,並可以分享他們對解決方案的見解?謝謝

+0

同樣在這裏...你找到了嗎? – Pedro77 2013-07-19 11:45:57

回答

4

我懷疑有這個問題的「銀彈」解決方案。沒有人說每個文件格式都有任何形式的幻數。考慮純文本文件 - 根本沒有合理的指示(除了在開始處可能的字節順序標記,然而,這並不意味着什麼),並且必須使用純啓發式來猜測它是純文本文件。像明智地識別XML或HTML(即SGML)文件一樣,它意味着檢查很多可能性。

的方法,你應該遵循的是:

  • 縮小一套預期的文件格式。
  • 基於您需要支持的文件格式的整體結構和/或特性的知識來做自己動手,或者查找rerun提到的GNU File等解決方案。你也可以看看MagicDB這樣的網站 - 但是,這個網站特別過時(2005年)。
  • 指定意外文件格式的行爲。

如果設置的「足夠窄」,我會考慮一個簡單的自定義解決方案作爲正確的解決方案。

3

我不知道的.net選項,但你可以看到如果file for windows來自gnu解決您的問題。