当用户发送选择了文件/图像的多部分表单时,通常在Meteor或node.js中,服务器端POST url处理程序使用this.request或req或request对象来检测它是POST方法还是其他任何方法。它的标题等,但我不明白的是,这个请求对象的实际文件在哪里,我如何检索它,以便它可以用于图像/文件上传或服务器上的某些操作?
答案 0 :(得分:0)
节点提供查询字符串 api来解析看起来像这样的字符串:
foo=bar&baz=qux&baz=quux&corge
...这也是多部分表格数据的发送方式。用该api解析这将返回一个对象:
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
因此,您可以先检测请求的方法,如果是POST
,您可以将处理程序附加到'data'
,将所有数据放入您自己的变量中,并'end'
1}},使用querystring
解析它:
var qs = require('querystring');
// your request callback function would be something like:
function (request,response){
if(request.method=='POST'){
var body = '';
request.on('data',function(data){
body += data;
//reject requests that have sent too much data (eg 2MB):
if(body.length > 2e6){
// Send HTTP status code for `Request Entity Too Large`:
response.writeHead(413);
response.end();
});
request.on('end', function(){
var form = qs.parse(body);
//use form as object
});
} // end if
} // end handler