im eine Datei mit multer hochladen triying aber immer die req.file ist nicht definiert und der Zielordner ist leer:node.js multer req.file immer undefined
Server:
var express = require('express');
var multer = require('multer')
var app = express();
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './public/uploads/'); // Make sure this folder exists
},
filename: function(req, file, cb) {
console.log(file)
var ext = file.originalname.split('.').pop();
cb(null, file.fieldname + '-' + Date.now() + '.' + ext);
}
}),
upload = multer({
storage: storage
}).single('avatar');
app.post('/uploads', upload, (req, res) => {
console.log('body', req.body);
console.log('file', req.file);
res.json("ok")
});
Client:
Ich habe viele Antworten angeschaut, aber nichts hat funktioniert.
<form id="myform" encrypt="multipart/form-data">
<label for="userName">Name</label>
<input type="text" name="userName"/>
<br>
<label for="phoneNumber">PhoneNumber</label>
<input type="text" name="phoneNumber"/>
<br>
<label for="file">UploadFile</label>
<input type="file" name="avatar"/>
<input type="submit"/>
</form>
$('#myForm').submit(function(e){
var formData = new FormData($(this)[0]);
$.ajax({
type:'POST',
url:'uploads',
data : formData,
contentType: true,
processData: false
}).done(function(data){
//print response on success
console.log(data);
}).fail(function(data) {
console.log('Error');
});
e.preventDefault();
});
Können Sie mir sagen, was ich falsch mache bitte?
Ihre Probe funktioniert, vielen Dank. Können Sie mir sagen, wie ich die Antwort bekommen kann? –
Wo willst du es fangen? Soll der Browser auf der Seite mit dem Upload-Formular bleiben? – Marc
Ja, das ist, was ich will, weil Browser wechseln zu http: // myip/uploads –