2012-11-03 59 views
2

我正在使用PHP將文件存儲在MySQL BLOB字段中。後者我試圖將該BLOB數據作爲郵件中的附件發送。在PHP中查找MySQL BLOB對象的類型

我的問題是:如何獲得PHP中的BLOB對象的類型?該BLOB對象可以是PDF或Word文件。在不知道文件類型的情況下,我們無法發送郵件。

請給我解決方案,謝謝。

+3

創建新列doc_type並保存文檔類型(pdf/doc),同時將數據保存在blob字段中。 –

回答

2

BLOB對象的數據的原始文件類型不存儲在MySQL中,因此無法立即知道文件是什麼文件類型。

爲了讓文件類型,你可以做某些事情:

  • 在MySQL中,創建一個文件類型的字段,並存儲在文件中的數據時,還可以存儲的文件類型。
  • 檢查文件簽名。大多數文件具有相同格式時的第一個字節相同。對於PDF文件,簽名爲%PDF,對於Word文件,簽名包含這些字節(以十六進制顯示):50 4B 03 04 14 00 06 00。我找到了a table,您可以在其中找到許多文件簽名。請注意,檢查簽名不適用於所有文件格式。
  • 爲了使事情更容易,您可以使用PHP中的FileInfo函數。
0

您可以檢查文件簽名。這是定義文件類型和版本的第一行。

對於PDF應該%PDF 對於MS Office的< = 2003:ÐÏ.ࡱ.A 對於MS辦公> 2003:PK ......(由於這是一種壓縮格式,它具有與zip文件相同的簽名)

儘管實現此目的的更簡單方法應該是在將文件保存到新列時存儲文檔類型。