繁体   English   中英

enctype="multipart/form-data" 总是返回 null 输入,但它是 multer 必须工作的,我们如何解决这个问题?

[英]enctype=“multipart/form-data” always return null input but it is a must for multer to work how can we fix this?

今天是个好日子,

我想将这个multer框架用于我的输入,其中有一个图像要上传到我的项目文件目录并将图像文件名发送到 mysql 数据库,但 enctype="multipart/form-data" 将我的输入返回到 null 和 enctype=" multipart/form-data" 是 multer 工作的必要条件。 我找不到像我这样的相关问题,我需要你们的帮助。

在此处输入图像描述 在此处输入图像描述

音乐索引.ejs

<form class="add-music-form" action="/save" method="POST" enctype="multipart/form-data">
    <div class="form-group">
        <div class="song-featured-image">
            <input style="display: none;" type="file" accept="image/*" id="file" name="featured_img"  onchange="loadFile(event)" required>
            <img id="output" class="image-preview" width="130" src="/img/rock-on.jpg" />
            <label for="file" class="attach_file" style="cursor: pointer">
            <i class="material-icons">attach_file</i></label>
        </div>
    </div>
    <div class="mt-3">
        <button type="submit" class="btn btn-primary">Submit</button>
        <a onclick="cancel()" class="btn btn-default">Cancel</a>
        </div>
</form>

应用程序.js

app.post('/save', (req, res) => {
    upload(req, res, (err) => {
      if(err){
        res.render('music_index', {
          msg: err
        });
      } else {
        if(req.file == undefined){
          res.render('music_index', {
            msg: 'Error: No File Selected!'
          });
        } else {
          res.render('music_index', {
            msg: 'File Uploaded!',
            file: `uploads/${req.file.filename}`
          });
        }
      }
    });

    let data = {
        featured_img: req.body.featured_img, 
        title: req.body.title, 
        band_name: req.body.band_name,
        audio: req.body.audio 
    };
    
    let sql ="INSERT INTO music SET ?";
    let query = connection.query(sql, data,(err, results) => {
        if(err) throw err;
        res.redirect('/');
    });
});

观点

尝试 req.body-> req.file

let data = {
        featured_img: req.file.featured_img, 
        title: req.file.title, 
        band_name: req.file.band_name,
        audio: req.file.audio 
    };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM