簡體   English   中英

如何使用PHP從MySQL數據庫中讀取圖像?

[英]How to read images from MySQL database using PHP?

如何使用PHP從MySQL數據庫中讀取圖像?

如果圖像存儲在數據庫中的BLOB中,如何使用我獲得的二進制數據並使用<img> src或使用CSS屬性background-image將其轉換background-image

謝謝。

要直接使用二進制數據作為圖像源,您可以使用數據 URI方案 ,例如:

$uri = 'data:image/png;base64,'.base64_encode($row['binary-data']);

然后可以將此URI直接用作圖像的源:

background-image: url(<?php echo $uri; ?>)
<img src="<?php echo $uri; ?>">

但是,有一些明顯的缺點:除了缺乏支持在舊的瀏覽器,這些數據的URI, 數據 URI是也有不利的方面有效載荷,緩存和引用

如果將圖像存儲為BLOB,您可能應該做的是提供一個URL,以一種可以確定要返回的圖像的方式調用腳本。

使用該URL作為srcbackground-image: url(...)並在腳本中,將數據庫中的BLOB讀入變量。

然后在適當的標題信息之后輸出變量,告訴瀏覽器它將接收圖像,例如:

header('Content-Type: image/jpeg');

發送Content-Length標頭和有關緩存/到期的合理信息也是明智之舉。


NB。 說了這么多,我傾向於警惕在數據庫中使用BLOB,它們往往會削弱性能。 當我想存儲圖像時,我會存儲在一些目錄結構中,並以某種方式在數據庫中引用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM