可以将响应设置为 ArrayBuffer 客户端但不使用 Node.js

Can Set Response as ArrayBuffer Client Side but not using Node.js

我有一个使用 XMLHTTPResponse 的客户端表单,它允许我将响应数据保存为一个文件。在剩下的 blob 转换发生之前,它将响应类型设置为 arraybuffer,如下所示:

xhr.responseType = "arraybuffer";

我一直在搜索并找到多种创建数组缓冲区的方法,但 none 详细说明了如何将节点中的响应带到数组缓冲区。我使用 unirest 如下:

unirest.post('http://myvendorsapi/Upload_PDF')
  .headers({ 'Content-Type': 'multipart/form-data' })
  .field('filename', filename)// Form field
  .attach('file', fileloc)// Attachment
  .end(function (response) {
     console.log(response);
     var returnfile = response.body;
     // Need logic to convert to arraybuffer
  });

如何将响应类型设置为数组缓冲区或将我的响应转换为数组缓冲区?

如果您想获得更多原始响应数据,我会放弃 unirest 库并使用更薄的东西,例如 request。 Unirest 声称为您 'parse responses',这听起来像是您不想要的东西。 如果你只是想将原始响应主体保存到一个文件中,使用请求,你可以这样做:

var formData = {
    filename: filename,
    file: fs.createReadStream(fileloc)
}
var req = request.post({url: 'http://myvendorsapi/Upload_PDF', formData: formData})
req.pipe(fs.createWriteStream('OUTPUT FILE NAME'))