Ich schreibe eine Express-App, wo ein Endpunkt ein Bild aufnimmt und ich dann dieses Bild an eine Drittanbieter-API senden würde. Ich habe multer
verwendet, um das Image auf der Festplatte zu speichern, und ich habe den relativen Dateipfad zum Image, aber die API, die ich aufrufen möchte, benötigt das tatsächliche Image oder eine Image-URL. Das Problem ist, dass ich nur einen Zeichenfolgenwert übergebe, der den Dateipfad zum Bild enthält. Hier ist, was ich habe zur Zeit:Angesichts der lokalen relativen URL zu einem Bild, wie bekomme ich das tatsächliche Bild zu senden
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 });
Und ich brauche das Bild in diesem API-Aufruf hier zu nennen:
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);
});
});
Als ich console.log(req.file.filePath)
, erhalte ich einen gültigen Dateipfad, aber ich brauche das eigentliche Bild in die app.models.predict(API_KEY, image)
Was passiert, wenn Sie die '.path' entfernen und senden Sie einfach' req.file' –
ich einen 400-Fehler erhalten mit 'badrequest' –
' Daten: {status: {code: 11100, Beschreibung: ‚Bad Anfrageformat ', Details:' Invalid json path \ 'Eingaben [0] .data.image.destination \' in request. ' }}} ' –