2012-10-01 135 views
0

我有一個頁面從快照工具生成圖像數據url並通過PHP將結果字符串插入到MySQL數據庫中。稍後,我有一個頁面可以獲取並使用這些圖像。這將是很好,除了我需要保存生成的html到我的服務器進行一些後期處理,並且圖像數據url的長度讓我頭疼,並使html文件長達8到10 MB,從而減慢整個過程。圖像看起來像這樣:將html圖像數據url轉換爲託管圖像

<img src="data:image/png:base64,iVBORw0K43+gAA4u..."> 

如果有一個非常長的字符串,使得生成的html非常大。有沒有辦法在我的服務器上作爲一個PNG主機,所以鏈接是一個正常的圖像?事情是這樣的:

<img src="http://www.mysite.com/image1.png"> 
+0

你使用Base64圖像編碼...?試試這個http://php.net/manual/en/function.base64-decode.php –

回答

2

如何將base64轉換爲原始圖像,您將要做的是將圖像作爲實際文件保存到服務器。

PHP來的base64數據轉換成圖像

function toImage($base_code){ 
    $img_file = imagecreatefromstring(base64_decode($base_code)); 
    imagejpeg($img_file, 'new.jpg'); 
} 

調用函數

echo toImage($encoded_image); 

確保只有經過base64編碼字符串,不圖像標籤

+0

這看起來很有前途,讓我試試看,我會盡快回復你。 –

0

您可以在其他地方保存文件,但我的猜測是,你已經有了在數據庫中存在的圖像的要求。如果你將文件保存在其他地方,那麼你的磁盤需求就增加了一倍。

在任何情況下,對此的一般修復將保存該圖像字符串到磁盤,並在您的數據庫記錄的路徑。然後,當您生成HTML時,您將使用DB中的路徑,而不是數據庫中的二進制數據。