【发布时间】:2022-02-09 22:33:10
【问题描述】:
我想通过 JS 获取一个文件到 multer,但它总是返回 undefined。我提出了邮递员的要求,并且工作正常,文件保存在“/uploads”中。试图查看我的 JS 代码,但不知道出了什么问题。
HTML:
<form action="/" class="form" id="form" accept-charset="utf-8" onsubmit="return(validate())">
<div class="form__div">
<label class="form__label" for="image">Send an image (optional)</label>
<input type="file" name="image" id="image">
</div>
<button class="form__submit" type="submit">Submit</button>
</form>
JS:
const validate = () => {
const formData = new FormData(document.querySelector('#form'));
fetch('/send_file', {
method: 'POST',
body: formData.get('image')
})
.then(data => console.log(data))
.catch(err => console.log(err))
return false;
}
节点:
const express = require('express');
const multer = require('multer');
const app = express();
app.use(express.static('./public'));
app.use(express.json());
const storage = multer.diskStorage({
destination: './uploads',
filename: function(req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
const upload = multer({ storage: storage });
app.listen(3000);
app.post('/send_file', upload.single('image'), (req, res) => {
console.log(req.body.image);
res.end();
})
【问题讨论】: