javascript - Node.js 中未定义上传的图像数据

标签 javascript node.js express

我正在使用 ajax 将图像文件发送到我的 Node.js 服务器。当我想查看文件数据时,它显示“未定义”。

app.js:

 var express    = require("express");
 var app        = express();
 var server     = require('http').createServer(app);
 var path       = require('path');
 var bodyParser = require('body-parser');

 app.set('view engine', 'ejs');
 app.set('views', path.join(__dirname, 'views'));

 app.use(express.static(path.join(__dirname, 'includes')));
 app.use(bodyParser.urlencoded({ extended: false }));

 app.post('/image-upload', function(req, res){
     console.log(req.files); ////// undefined
 });

 var port = process.env.PORT || 3000;
 server.listen(port);   

html:

<form id="uploadimage" action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file"/>
    <input type="submit" value="Upload" id="submit-stock" />
</form>

JavaScript:

$("#uploadimage").on('submit',(function(e) {
        e.preventDefault();
        $.ajax({
            url: base_url + "/image-upload",
            type: "POST",
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData: false
        });
    }));

最佳答案

body-parser 模块仅处理标准 POST 请求,而不是像文件上传那样处理 multipart/form-data 请求。为了处理这个问题,您最好使用另一个中间件,例如 multer

关于javascript - Node.js 中未定义上传的图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434856/

相关文章:

javascript - 即使我仅在 'fs/promises' 内使用 fs 代码,也找不到模块 "getStaticProps()"- next js

javascript - HtmlWebpackPlugin 不包含 vendor.js

javascript - 有没有办法将 json 对象转换为 json l 文件

css - 在 express + webpack 服务器中提供 css

node.js - 为什么我在使用 Openshift 时遇到字体文件权限问题

javascript - 通过两种不同的方式获取 req.body

javascript - 使用 javascript 隐藏下拉选项

php - 如何限制 Javascript 出现重复的表单字段?

javascript - 如果所选选项为空,如何防止提交?

javascript - 如何在 split 函数中获取空格和换行符