我使用Node.js从服务器下载图像并保存。偶尔我会收到损坏的图像,这反过来会破坏我程序另一部分的视频渲染。我想在这些图片被保存之前对其进行验证。
现在我有一个看起来像这样的功能:
function saveImage(res, destination, imageName, url) {
var imgName = './' + destination + '/' + imageName + '.jpg';
var type = res.headers['content-type'];
if (type === 'image/jpg' || type === 'image/jpeg') {
res.pipe(fs.createWriteStream(imgName));
} else {
console.log('corrupt Image caught: ', url,' headers: ',type);
}
}
您已经看到我已经在检查内容类型了。这实际上并没有阻止一些不良图像。它们似乎具有正确的标题,但保存为0 KB文件。
是否有一种简单的方法可以检查不依赖于内容长度的图像文件大小?我的理解并不总是这样。