我正在编写一个快速应用程序,其中一个端点接收图像,然后我将该图像发送给第三方Api。我使用multer
将图像保存到磁盘,并且我有图像的相对文件路径,但我尝试调用的API需要实际图像或图像URL。问题是我只是将包含文件路径的字符串值传递给图像。这是我目前的情况:
var multer = require('multer')
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/');
},
filename: function(req, file, cb) {
cb(null, Date.now() + file.originalname);
}
});
var upload = multer({ storage: storage });
我需要在这个api调用中调用图像:
router.post('/images/tags/info/image', upload.single('fileName'), function(req, res, next) {
console.log(req.file.path);
var imageUrl = req.file.path;
app.models.predict('APP_KEY', imageUrl).then(
function (response) {
var responseJson = JSON.stringify(response.data.outputs[0].data.concepts);
var data = collectTags(responseJson);
data.then(function(value) {
res.json(value);
});
},
function (err) {
console.log(err);
});
});
当我console.log(req.file.filePath)
时,我获得了一个有效的文件路径,但我需要将实际图像传递到app.models.predict(API_KEY, image)
答案 0 :(得分:1)
您只需从文件系统中读取图像并将其发送到api即可。
例如
object Main {
def main(args: Array[String]) = {
val mc1: MyClass = new MyClass(20);
val mc2: MyClass = 10
mc1.doSome //fine
mc2.doSome //fine
30.doSome //error. Cannot resolve symbol doSome
}
implicit def int2MyClass(i: Int): MyClass = new MyClass(i)
implicit class Tst(val mc: MyClass){
def doSome = println(mc.i)
}
}
class MyClass(val i: Int)
将图像作为base64发送的示例(使用async / await)。