PHPを使用してMySQLBLOBフィールドにファイルを保存しています。後で、そのBLOBデータを添付ファイルとしてメールで送信しようとしています。
私の質問は、PHPでBLOBオブジェクトのタイプを取得するにはどうすればよいですか?そのBLOBオブジェクトは、PDFまたはWordファイルにすることができます。ファイルの種類がわからないとメールを送ることができません。
解決策を提案してください、ありがとう。
BLOBオブジェクトのデータの元のファイルタイプはMySQLに保存されないため、ファイルがどのファイルタイプであるかを即座に知ることはできません。
ファイルタイプを取得するために、特定のことを行うことができます。
%PDF
です。Wordファイルの場合、署名は次のバイトで構成されます(16進数で表示)50 4B 03 04 14 00 06 00
。多くのファイル署名を見つけることができるテーブルを見つけました。署名の確認は、すべてのファイル形式に適用されるわけではないことに注意してください。You could check for the file signature. That's the first line of the file defining the file type and version.
For PDF it should be %PDF For MS Office <= 2003: ÐÏ.ࡱ.á For MS Office > 2003: PK...... (As it's a compressed format, it have the same signature as zip files)
Although, an easier way to achieve this should be to store the doc type when saving the file in a new column.