【发布时间】:2014-09-08 19:43:09
【问题描述】:
我想通过 jQuery post 请求发送文件。我的 node.js 将读取文件并将 data 插入到 Mongodb 中。
这是我的 node.js 函数:
upload: function(req, res){
var FileName;
req.file('myFile').upload(function(err,files){
var i = 1;
if(err) return res.serverError(err);
FileName = files[0].filename; ......
如果直接从html 发送post 请求,上述函数可以正常工作,如下所示:
<form method="post" action="/indi id="indiform" enctype="multipart/form-data">
<input type="file" name="myFile" id="myIndifile"/>
<input type="submit" id="indisubmitbutton" value="Submit" name="upload" class="btn btn-primary" id = "uploadFile"/>
</form>
现在我想从 jQuery 提交 post 请求并将响应 data 处理为:
var file = $("#myIndifile")[0].files[0];
$.ajax({
type: 'post',
url: '/indi',
async: false,
data: JSON.stringify({ myFile:file }),
contentType: "application/json",
success: function (data) {
alert(" Number of lines Read :"+data[0].lines+"\n"+"Number of records saved:"+data[1].saved);
}
});
这是抛出Cannot read property 'filename' of undefined at FileName = files[0].filename error。
如果我这样发送请求:
var file = $("#myIndifile")[0].files[0];
var formdata = new FormData();
formdata.append("myFile", file);
$.ajax({
type: 'post',
url: '/indi',
data: formdata,
contentType: "multipart/form-data",
success: function (data) {
Pace.stop;
alert(" Number of lines Read :"+data[0].lines+"\n"+"Number of records saved:"+data[1].saved);
}
});
javascript 抛出 Uncaught TypeError: Illegal invocation error.
如果我从 html 发送 post 请求,一切正常。
如何从具有文件内容的jQuery发送post请求?
【问题讨论】:
标签: javascript jquery node.js form-data ajaxform