将String变量传递给sharp()作为文件路径输入总是给我这个错误是很奇怪的 -
[错误:缺少输入文件或图像格式不受支持]
我甚至将toString()添加到我的变量中,所以我的返回肯定是一个字符串。
var tmp = 'image/'+ id + '.jpg';
var path = tmp.toString();
console.log("What's in tmp: " + tmp);
console.log("What's in path: " + path);
sharp(path)
.resize(300, 300)
.toFile('image/'+ id + 'L.jpg', function(err, info) {
if (err) {
console.log('Error Type: ', err);
}
});
我验证代码的方式如下:
它以另一种方式工作,所以我的图像格式是正确的。我甚至做了一个' sharp.format'确认它的支持,所以这不是问题所在。接下来,我复制了“路径”'来自我的控制台日志输出的变量字符串,并将其直接粘贴到sharp构造函数call = sharp()。
中控制台输出:
tmp:image / 1.jpg
中的内容路径中的内容:image / 1.jpg
sharp('image/1.jpg')
.resize(300, 300)
.toFile('image/'+ id + 'L.jpg', function(err, info) {
if (err) {
console.log('Error Type: ', err);
}
});
现在一切都重新开始了 - 文件已调整大小并在图像中生成。使用'路径'切换回来变量继续给我没有运气。这种问题令我感到惊讶,因为它在文档中明确指出它支持String类型输入。现在我也对路径和' image / 1.jpg'之间的区别感到困惑。也许我的下一步是使用(path ===' image / 1.jpg')来比较它们。
来自敏锐文档的声明供您参考 - > '输入(缓冲区|字符串)?或包含JPEG,PNG,WebP,GIF,SVG或TIFF图像文件路径的字符串。'
一定是我错过的明显事物。我确信,当他们设计工具时,他们可以灵活地将输入路径定义为代码重用的变量。那有什么建议吗?提前谢谢。