【问题标题】:Fetch file to multer returns undefined获取文件到 multer 返回未定义
【发布时间】: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();
})

【问题讨论】:

    标签: fetch postman multer


    【解决方案1】:

    如果您尝试使用 multer 发送数据,则必须将其放入表单标签中

    enctype="multipart/form-data"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2019-09-02
      • 2020-06-19
      • 2019-07-05
      相关资源
      最近更新 更多