2015-04-16 16 views
5

Ho piccole immagini che voglio memorizzare come elemento di dati del raccoglitore. Il modulo viene pubblicato ma non so cosa fare nel controller in modo tale che se lo faccio, i dati vengono memorizzati. Sto usando Sails.js e il modulo sta passando i dati come "immagine" con il modulo con un tipo di input di file.Come archiviare i dati binari dalla posta in MongoDB

var image = new Images; 
image.data = ???? 
image.save(); 

risposta

4

Se le immagini sono più piccoli di 16Mb, è possibile salvare direttamente utilizzando il tipo BinData di MongoDB. È sempre possibile convertire il flusso binario in una stringa Base64 e memorizzarlo come un file di stringhe, ma ciò ridurrà la dimensione dell'immagine consentita.

Se l'immagine è più grande di 16 Mb, non è possibile fare altro che utilizzare GridFS.

+0

Grazie per la risposta. Questo è esattamente ciò che voglio fare. Come posso convertire l'input post in base64 con il nodo? – latitudehopper

+0

È possibile creare una stringa base64 utilizzando un buffer. Date un'occhiata a questo articolo: http://www.hacksparrow.com/base64-encoding-decoding-in-node-js.html – Pickels

+0

Qualcuno può condividere qualche link contenente documentazione/esempio di caricamento del file tramite tipo bindata? – adi

Problemi correlati