2013-02-20 89 views
0

如何節省超過16MB的圖像更小的MongoDB中,我需要一些幫助:使用PHP,使用BSON

我PHP創建Web應用程序和使用數據庫MongoDB的。

因爲它是一個銀行nosql有想法,我需要將圖像保存在適當的數據庫。

在mongoDB文檔的研究中,我發現我需要使用BSON類型來保存銀行,因爲它的圖像小於16mb。

問題是我不知道如何。

我需要轉換圖像。 JPG中的字符串? 然後使用bson_encode?

我想是這樣的:

$data = file_get_contents('../images/1.png'); 

$connection = new Mongo(); 

$db = $connection->aaaa; 

$suspeitos = $db->imagens; 

$susp = array(  
'imagem' => $data, 
); 

$suspeitos->insert($susp); 

但是,這是行不通的。

有人已經做了類似的事情,並可以幫助我保存與BSON mongoDB中的圖像?

感謝

+0

保存圖像直接在數據庫中,數據庫的類型regaurdless通常是一個壞主意。如果您確實想要將文件存儲在mongo中,請使用Mongo GridFS。 – datasage 2013-02-20 17:57:00

回答

0

的MongoDB在文件系統構建呼籲內的MongoDB本身存儲文件GridFS的。您將獲得Shards和MongoDB的複製和查詢的所有優點。這些文件被分解爲大塊,因此您不會遇到16MB文檔大小的限制。

http://php.net/manual/en/class.mongogridfs.php

+0

那麼即使對於少於16MB的文件,最好的方法仍然是使用GridFS? – 2013-02-20 18:00:47

+0

「最好」是一個相對術語,但是可以使用GridFS爲用戶存儲簡檔圖像,即使它們非常小。 – SomethingOn 2013-02-21 02:01:32

相關問題