我想在服务器端使用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,但它没有用。 (也许我不会做得恰到好处......)
您能解释一下如何匹配文件类型吗?
答案 0 :(得分:0)
我不确定您data
对象上的movieClipData.screenshot
属性来自您对后端的描述。
您是否尝试直接将其用作网址,因为您有screenshot: ssFullPath
,screenshot
不是模式中描述的Buffer
,而是文件路径的字符串由ffmpeg保存。
<img src={movieClipData.screenshot} />