快速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--