node.js / gphoto2 - как сохранить файл (jpg)

Я пытаюсь создать веб-интерфейс для canon eos 7d, используя node.js (0.10.20), libgphoto2 (2.5.2.) И модуль gphoto2 для узла на Raspberry Pi (последний raspbian).

Кажется, все работает нормально, за исключением сохранения файлов в узле.

я использую следующий фрагмент кода:

app.get('/shoot', function(req, res){
    camera.takePicture({download:true}, function(er, data){

        res.header('Content-Type', 'image/jpeg');
        res.send(data);

        fs.writeFile("public/images/sampleImg.jpg", data);
    });
});

Созданный файл не читается / не является допустимым изображением JPG

использование инструмента cli для libgphoto создает правильное изображение:

pi@raspi /srv/node/eos $ gphoto2 --capture-image-and-download

поэтому я предполагаю, что ошибка где-то в коде узла для сохранения данных

Как правильно сохранить данные в узле в файл.jpg?

1 ответ

Я работаю над чем-то очень похожим. Кажется, я помню, что мне нужно было указать, что данные с камеры были двоичными, что-то вроде:

app.get('/shoot', function(req, res){
    camera.takePicture({download:true}, function(er, data){
        res.header('Content-Type', 'image/jpeg');
        res.send(new Buffer(data, 'binary'));
        fs.writeFile(
            "public/images/sampleImg.jpg",
            new Buffer(data, 'binary'),
            function (err){}
            );
    });
});

Стреляй мне по электронной почте, если вы хотите сотрудничать.

http://tonyspiro.com/uploading-and-resizing-an-image-using-node-js/ http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-May/004270.html

Другие вопросы по тегам