Отправить файл с сервера на API с помощью FormData - PullRequest
0 голосов
/ 28 декабря 2018

У меня проблемы с форматированием данных файла, поэтому я могу отправить его, используя XMLHttpRequest с 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>.

Я признаю, что не слишком уверен, что это значит, поэтому я полагаю, что я не читаю достаточно данных из файла, возможно?

Спасибо за любую помощь, которую вы можете оказать.

...