如何用mongodb(mongoose)/反应来检索图像?

时间:2017-05-07 07:58:45

标签: javascript html mongodb reactjs mongoose

我想在服务器端使用mongodb保存图像文件。 我想在正面显示这个(保存的)图像。

以下是我的服务器端代码。

const Video = new Schema({
    ...file owner, file path, etc,.
    screenshot: {
        type: Buffer
    }
});

// Extract thumbnail by using ffmpeg.
    let resDir = __dirname + '/resources/';
    let videoFullPath = resDir + 'videos/' + newFileName;
    let ssFullPath = resDir + 'screenshots/' + newFileName + '.png';
    let execCommand = 'ffmpeg -i ' + videoFullPath +
                      ' -f image2 -t 0.001 -ss 1.0 ' + ssFullPath;
    childProcess.exec(execCommand);

    // Save Video information DB.
    let newVideo = new Video({
        ...file ownef, file path, etc,.
        screenshot: ssFullPath,
    });
    newVideo.save((err, data) => {
        if(err) throw err;
        return res.json({success: true});
    });

以下是我的正面代码。 (movieClipData是mongoDB对象)

const imgSrc = 'data:image/png;base64,' + movieClipData.screenshot.data;
<img src={imgSrc}/>

我认为文件类型(base64,二进制...)会导致此问题。 所以我试图将文件类型转换为base64,但它没有用。 (也许我不会做得恰到好处......)

您能解释一下如何匹配文件类型吗?

1 个答案:

答案 0 :(得分:0)

我不确定您data对象上的movieClipData.screenshot属性来自您对后端的描述。

您是否尝试直接将其用作网址,因为您有screenshot: ssFullPathscreenshot不是模式中描述的Buffer,而是文件路径的字符串由ffmpeg保存。

<img src={movieClipData.screenshot} />