Ich verwende die jQuery Form Plugin
und multer
, um Dateien auf meinen Server hochzuladen. Das funktioniert gut, aber ich versuche, einen zusätzlichen Parameter zu übergeben, der bestimmt, wo genau die Datei gespeichert wird.Hochladen einer Datei und Übergeben eines zusätzlichen Parameters mit Multer
Ich habe folgenden Code, der Ich mag würde verlängern, wie angegeben verhalten:
HTML
<form id="uploadForm"
enctype="multipart/form-data"
action="/files"
method="post">
<input type="file" id="userFile" name="userFile"/>
<input type="text" hidden id="savePath" name="savePath" value="path"/>
</form>
Client-JS
uploadForm.submit(function() {
$(this).ajaxSubmit({
error: function(xhr) {
console.log('Error: ' + xhr.status);
},
success: function(response) {
console.log('Success: ' + response);
}
});
return false;
});
Node.js Strecke
app.post(APIpath + "file",function(req,res){
var storage = multer.diskStorage({
destination: absoluteServePath+ "/" + config.filePath,
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
var upload = multer({ storage : storage}).any();
upload(req,res,function(err) {
if(err) {
console.log(err);
return res.end("Error uploading file.");
}
res.end("File has been uploaded");
});
});
Hinweis: Ich weiß, dass ich nicht nach MIME-Typen suche oder die Benutzerdateien bereinige, aber es ist im Moment hauptsächlich sekundär für mich.
Sie nehmen 'savePath' von' req.body'. –
Nun, ich bekomme nur ein Objekt für 'userFile',' savePath' erschien nie im 'req.body' mit den Versuchen, die ich hatte. –