使用FormData将文件从服务器发送到API

时间:2018-12-28 20:14:19

标签: javascript node.js express xmlhttprequest multipartform-data

我在正确设置文件数据格式时遇到问题,因此我可以使用带有XMLHttpRequest的{​​{1}}来发送文件。

如果我将FormData的文件直接从表单append直接发送到FormData,则在前端工作良好,但是保存在服务器上的文件随后需要发送到API,并且我可以无论我如何尝试,都无法正常工作。请参见下面的代码:

var filename = 'test123.txt';

// FormData
var FormData = require('form-data');

// Filereader
var FileAPI = require('file-api')
  , File = FileAPI.File
  , FileList = FileAPI.FileList
  , FileReader = FileAPI.FileReader
  ;
var fileReader = new FileReader();
fileReader.setNodeChunkedEncoding(true || false);
fileReader.readAsArrayBuffer(new File('server_path/filename'));

fileReader.on('data', function (resultData) {

    // New FormData
    var data = new FormData();
    data.append('filename', resultData);

    // XHR
    var XMLHttpRequest = require("xhr2").XMLHttpRequest;
    let xhr = new XMLHttpRequest();
    xhr.open("POST", "API_URL");
    xhr.setRequestHeader("authorization", "Bearer API_TOKEN");
    xhr.setRequestHeader("Content-Type", "undefined")
    xhr.send(JSON.stringify({data}));

});

我已经尝试了一切。不使用JSON.stringify,而是使用其他方式读取文件,发送各种XHR标头,然后将其命名。

如果我输出resultData的结果,则会看到<Buffer 73 78 73 64 6a 61 20 64 6a 32 33 39 38 20 72 65 6a 38 39 77 65 20 72 38 39 33 6e 77 39 72 38 6e 33 77 39 38 72 6e 39 38 32 33 6e 38 39>

我承认我不太清楚这意味着什么,所以我想我可能没有从文件中读取足够的数据?

感谢您提供的任何帮助。

0 个答案:

没有答案