在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);

}

});

回答:

看起来您已经在使用requestmodule了。

在这种情况下,您需要发布的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

回到顶部