有沒有一種方法來驗證文件是它聲稱是根據它的文件擴展名?驗證文件是它聲稱是它的文件擴展名
我有大量的文件,我的應用程序複製到遠程服務器。在做每個文件副本之前,我想驗證該文件實際上是文件擴展名所聲稱的。
現在用戶使用NSOpenPanel
選擇文件的文件和/或目錄。一旦我有一組文件,我可以在複製開始之前驗證每個文件的物理存在。我有驗證源目錄是可寫的工作正常,並使用FSCopyObjectAsync
與所有文件取消到位的副本也工作正常。
最後一塊是這個驗證檢查。我的用戶可以上傳的內容有限,但是使用文件擴展名完成篩選。例如,惡意用戶可以通過文件擴展名獲取一個單詞文檔文件(.doc)並將其更改爲.png,以便通過初始打開的對話框驗證。
這是一個相當簡單的例子。這些文件被服務器使用,我只想確保無法運行的文件不會上傳。
我看着NSFileManager
attributeOfItems:atPath:
,但它似乎並沒有提供真正的文件類型的任何信息。文件類型只返回一個目錄,符號鏈接等。
我寧願不試圖打開並加載每個文件來驗證,只是讀取文件頭並檢查它是否符合它需要的任何文件類型規範。
這不是一個iOS應用程序。
任何和所有幫助或指針在正確的方向非常讚賞。
凱文 - 值得一試,但沒有運氣。我將一個jpg重命名爲png,並將它改爲png而不是jpg。好主意,但。 – Hooligancat 2011-02-03 00:15:27