在Node.js中使用POST请求上传文件
我在Node.js中使用POST请求上传文件时遇到问题。我必须使用request
模块来完成该操作(无需外部npms)。服务器需要它是file
包含文件数据字段的多部分请求。看起来很容易,但不使用任何外部模块就很难在Node.js中完成。
我尝试使用此示例,但未成功:
request.post({ uri: url,
method: 'POST',
multipart: [{
body: '<FILE_DATA>'
}]
}, function (err, resp, body) {
if (err) {
console.log('Error!');
} else {
console.log('URL: ' + body);
}
});
回答:
看起来您已经在使用request
module了。
在这种情况下,您需要发布的multipart/form-
data只是使用其form
功能:
var req = request.post(url, function (err, resp, body) { if (err) {
console.log('Error!');
} else {
console.log('URL: ' + body);
}
});
var form = req.form();
form.append('file', '<FILE_DATA>', {
filename: 'myfile.txt',
contentType: 'text/plain'
});
但是,如果您想从文件系统中发布一些现有文件,则可以简单地将其作为可读流传递:
form.append('file', fs.createReadStream(filepath));
request
将自行提取所有相关的元数据。
有关发布的更多信息,multipart/form-data
请参见node-form-
data模块内部使用request
。
以上是 在Node.js中使用POST请求上传文件 的全部内容, 来源链接: utcz.com/qa/407565.html