【发布时间】:2018-08-04 03:02:54
【问题描述】:
我正在尝试将文件上传到我的服务器,但 req.file 和 req.files 在我的 POST REST 端点上始终未定义。
我要上传的内容是一个“.dat”文件,我期待一个 json 响应。
这是我的代码:
服务器端:
var express = require('express');
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express()
app.post('/creoUpload', upload.single('uploadFileField'), function(req, res, next) {
console.log("req.file = ",JSON.stringify(req.file)); //is undefined
console.log("req.files = ",JSON.stringify(req.files)); //also undefined
});
客户端:
<form id="creoUploadForm" action="/creoUpload" enctype="multipart/form-data" method="post">
<input type='file' name='uploadFileField'><br><br>
<input type='submit' value='Upload'/>
</form>
JS:
$( "#creoUploadForm" ).submit(function( event ) {
event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: '/creoUpload',
type: 'POST',
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
console.log("RETURN DATA IS: ",returndata);
},
error: function (err) {
console.log("ERROR: ",err);
}
});
});
我一直在田地里玩耍,但它不起作用..有人知道我在这里做错了什么吗?
我正在关注https://www.npmjs.com/package/multer的示例
版本:
- Express 版本:4.12.0
- 节点版本:6.5.0
- jQuery:1.12.1
谢谢!
【问题讨论】:
-
在您的 HTML 中,您可以尝试从表单标签中删除操作,并将 formaction="/creoupload" 添加到提交按钮吗?
-
尝试使用
fetchApi 发送帖子请求
标签: javascript jquery node.js express multer