[英]Base64 decode image PHP
我正在嘗試從PHP中的SQL數據庫(存儲在base64_encode之后的位置)中解碼圖像Blob。
我在用
header('Pragma: public');
header('Cache-control: max-age=0');
header('Content-Type: image');
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
echo gzencode( base64_decode ($result[0]['Icon']) ); // result is the result of query from DB
當我的瀏覽器語言為英語時,雖然可以正常工作,但是如果我的瀏覽器語言不是英語,則無法正確解碼。
我正在用Charles代理進行調試以查看響應。 我無法在此處發布回復。 英語響應的大小比其他響應少3個字節。
但是,對於其他語言,它帶有額外的3個字節。
T�e�s�t�i�n�g� �
我檢查了數據庫中圖像的編碼字符串。 在數據庫中相同,但是發送響應時不同。 因此,如果語言是英語,則圖像可以正確顯示,但如果語言不是英語,則圖像會損壞。 請幫我。
我自己修復了此問題,原因是因為PHP在開頭添加了UTF-8字節順序標記(BOM)。 因此,使用ob_clean()清除輸出緩沖區時,此問題已得到解決。 以下工作完美。
header('Pragma: public');
header('Cache-control: max-age=0');
header('Content-Type: image');
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
ob_clean();
echo gzencode( base64_decode ($result[0]['Icon']) ); // result is the result of query from DB
您知道圖片的名稱或至少是擴展名嗎? 您必須在標題Content-Type中使用它。 例如header('Content-type:image / jpeg');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.