Konwertuj obraz Base64 do pliku binarnego raw za pomocą Node.js
Znalazłem posty, które są bliskie temu, czego szukam, ale nie udało mi się skutecznie wdrożyć tego, co chcę. Oto ogólny przepływ:
Prześlij zdjęcie z resztą danych o miejscu, jako dane base64Usuń prefiks danych, jeśli istnieje, więc mam tylko dane base64 obrazuvar base64data = venue.image.replace(/^data:image\/png;base64,|^data:image\/jpeg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, '');
Przechowuj dane Base64 w GridFS przez MongoDB (używamgridfstore)Następnie chciałbym pobrać obraz na żądanie jako surowy plik obrazu za pomocą adresu URL.// generic images route
server.get(version+'/images/:id', function(req, res) {
gridfstore.read( req.params.id, function(error,data) {
res.writeHead(200, {
'Content-Type': 'image/jpeg',
'Content-Length': data.buffer.length
});
res.end(data.buffer);
});
});
Zasadniczo metoda ta zwraca bajty Base64 przechowywane w GridFS. Próbowałem innych metod, ale nie zwracają one surowego obrazu.
Chciałbym pobrać obraz używając takich adresów URL:
http://[localhost]/1/images/11dbcef0-257b-11e3-97d7-cbbea10abbcb
Oto zrzut ekranu śledzenia przeglądarki: