我正在使用 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/