2012-11-28 81 views
0

不要責怪我關於該方法。我只是在練習,我想要達到目的。 因此,我通過Javascript node.js將一些圖像存儲到使用blob字段的遠程mysql表中。 後來我想檢索圖像並在html5中顯示它。 我對編碼/解碼過程感到生氣。我使用以下每種方法存儲圖像readAsDataURL(f); readAsBinaryString(f); readAsText(f);但是當我檢索圖像時,我無法將其顯示在image.src中。 唯一的辦法做到這一點是通過的phpmyadmin手動加載圖像到BLOB字段中,以後使用下面的轉換BLOB字段發送到HTML頁面:Javascript:將圖像保存到mysql並稍後顯示爲html5

var base64 = new Buffer(results[i].tile_image, 'binary').toString('base64'); 
client.emit('showTile', base64); 

的問題是:如何做phpmyadmin將二進制文件加載到blob字段中?或者,使用javascript我必須將圖像加載到blob中?

+1

你檢查了這[教程](http://www.phpriot.com/articles/images-in-mysql/)? –

+0

謝謝,非常有用。我差不多也是這樣。在教程的第7頁有文件加載器,但它在PHP中,我不知道這種語言。如何翻譯$ imgData = addslashes(file_get_contents($ _ FILES ['userfile'] ['tmp_name']));線? – user1861484

回答

0

到答案

看看這個tutorial上上傳圖片,並將它們存儲在MySQL轉換評論。

回答你的問題$ imgData = addslashes(file_get_contents($ _ FILES ['userfile'] ['tmp_name']));可以細分爲

$_FILES是上傳到文檔的文件(在本例中爲圖像)的關聯數組。 [$ _FILES]

files_get_contents將文件讀入字符串。在這種情況下,它會將文件的二進制數據存儲到可插入數據庫的字符串中。

addslashes轉義任何需要轉義的字符。

+0

得到了圖片。問題在於找到將圖像存儲到MySQL blob字段的正確方法。我想我真的很接近解決方案,但沒辦法得到它。我發現了一個名爲dataURLtoBlob的函數,它似乎以正確的方式轉換圖像,因爲Blob大小與DB表中通過phpmyadmin手動存儲的圖像相同。但只要我嘗試插入Blob對象到db中,如果表格字段爲0,則無法插入正確的值,即16.4k。當我將Blob傳遞給sql命令時,是否需要轉換它? – user1861484

+0

這聽起來像你在正確的軌道上。你有沒有嘗試完全按照教程?一旦他們得到第7頁上的$ imgData,它就插入到blob類型的列中。它看起來像你引用的函數是一個JavaScript函數。你可能想要做這個服務器端(PHP),而不是客戶端(JavaScript)。我建議準確地做這個教程。您可能會忽略一些細節 –

相關問題