添加xml缓冲区到表单数据



我想上传一个带有superagent的xml文件(Protractor Testresults,所以它在NodeJS上下文中)。我使用'fs'读取xml文件与readFileSync它为XML文件返回一个Buffer Object。不幸的是,我不知道如何将此缓冲区附加到请求的formData。如果我这样做,我只是得到一个错误:"字符串"参数必须为string、Buffer或ArrayBuffer类型之一。接收类型对象

//Imports and var declaration
var FormData = require('form-data');
var fs = require('fs');

const xmlFile = "\junit_xml_generation\file.xml";
var formData = new FormData();    

//Read File
fs.readFileSync(__dirname + xmlFile, function(err, data) {

//Add To Form Data
formData.append('file', Buffer.from(data, 'utf-8'), {filename: 'file.xml'});
//Request
superagent
.post("http://myurl.com")
.set("Content-Type", "multipart/form-data")
.type('xml')
.send(formData)
.end(function(err, res){
console.log("Result: ", res, err);
});
});

我已经尝试了这么多,但我不知道如何将此转换为Buffer/ArrayBuffer,因此请求不会给我不兼容类型的错误…

formData追加函数的第三个参数应该是一个包含文件名的字符串,而不是一个对象。

formData.append('file', Buffer.from(data, 'utf-8'), 'file.xml');

最新更新