QA@IT

MySQLにexcelファイルのバイナリデータを保存し表示させる方法

136 PV

PHPでMySQLに画像ファイルやPDFファイルのバイナリデータを保存して、それを表示させるのはできていますが、Excel(xlsx)、Word(docx)形式のファイルは、表示されないです。(PHPファイルのダウンロードのアクションが実行されています。)

<?PHP
define('Charset', 'UTF-8');

// Content-typeテーブル
$contents_type = array(
    'jpg'  => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'png'  => 'image/png',
    'gif'  => 'image/gif',
    'bmp'  => 'image/bmp',
    'pdf'  => 'application/pdf',
    'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
    'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
);

$stmt = $DB->prepare('SELECT * FROM test WHERE id=:id');

$stmt->bindParam(':id', $id);

$stmt->execute();

// 出力
$img = $stmt->fetchObject();

header('Content-type: ' . $contents_type[$img->ext]);//ファイルの拡張子を保存しているフィールド名=ext

echo $img->img;//バイナリデータを保存しているフィールド名=img

exit;
?>
ウォッチ

この質問への回答やコメントをメールでお知らせします。