客戶公司的SQLServer2008的一個生產數據庫才1年多就高達18G之巨,原來是系統裏面的圖片直接以16進制字符串的形式存儲在數據庫的。要用PHP顯示在html頁面上,我還耗費了不上時間。php
<?php // 從數據庫讀出來的:圖片的十六進制形式字符串 $icon_hex = '89504e470d0a1a0a0000000d494844520000001c00000012010300000072c92ca' .'700000006504c5445000000ffffffa5d99fdd0000003f49444154089963603e6f60c000266cce1' .'b1f8010cc07406220c2febcf10724e2ffe7ff7082f90303e76466062061ccc0603999d90048d81' .'b30d809f3400800c0921ea36f9b656d0000000049454e44ae426082'; $imgdata = base64_encode(pack('H*',$icon_hex)); echo '<img src="data:image/png;base64,'. $imgdata .'" />'; ?>
注意的一點是:在img標籤顯示時,必定要加文件頭說明:"data:image/png;base64,",這個地方弄了我很久。參考資料:http://php.net/manual/en/function.imagecreatefromstring.php base64轉成圖片html