快速parsingreq.body中的multipart / form-data post

我试图使用在Chrome浏览器和Firefox浏览器上find的jQuery Ajax + FormData对象来上传文件。 我正在使用的代码如下:

var formData = new FormData(); formData.append('image', $scope.image.data); $.ajax({ url: '/wines/'+id+'/image', type: 'POST', data: formData, processData:false, contentType:false }).done(function(){ $location.path('/'); }); 

通过查看开发人员工具,我可以看到请求形成正确,但是express是识别req.body内的内容而不是req.files。 这是请求有效载荷图像:

请求有效载荷

快速configuration:

 app.configure(function(){ app.set('views', __dirname + '/app'); app.engine('.html', require('ejs').renderFile) app.use(express.static(__dirname + '/app')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); }); 

我做错了什么? 非常感谢。

因为它不是一个文件,它只是一个string。 要使用FormData将AJAX文件传递给FormData ,必须将File对象传递给FormData.append ,而传递的数据只是一个string。

multipart/form-data体中的文件看起来像这样

  ------ WebKitFormBoundaryNBylbsEYlWSsq2lB
内容处理:表单数据;  NAME = “图像”; 文件名= “999.jpg”
内容types:image / jpeg

这里的文件内容
 ------ WebKitFormBoundaryNBylbsEYlWSsq2lB--