Загрузка байтового буфера в nodeJS с использованием multipart / form-data с xhr выдает ошибку. Граница не найдена - PullRequest
0 голосов
/ 03 октября 2018

Я читаю байты из файла в чанках, затем пытаюсь загрузить каждый чанк (который является буфером байтов), когда я использую тип контента в качестве 'multipart / from-data', он выдает ошибку, что граница не определена.Как определить границу, фрагмент моего кода выглядит следующим образом:

const fs = require('fs');
function getByteArray(filePath){
    let fileData = fs.readFileSync(filePath);
    return fileData;
  }
  url = "http://localhost:8080/upload"

  uploading =    function (file){
  var fileBuffer = getByteArray(file)
  var buffer = Buffer.from(fileBuffer);

  var i,tempBuf  
  for (i=0;i< buffer.length; i+=(500)) {
        tempBuf = buffer.slice(i,i+(500));  
      postRequest(url, tempBuf)
      };
    }

    postRequest: function postRequest(url, byteBuffer) {
        return new Promise(function(resolve, reject) {
          var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
          const xhr = new XMLHttpRequest();
          xhr.onreadystatechange = function(e) {
            if (xhr.readyState === 4) {
              if (xhr.status === 200) {
                resolve(xhr.responseText)
              } else {
                reject(xhr.status + "--" + xhr.responseText)
              }
            } else if (xhr.status != 200){
               // console.log()
            }else {
               // console.log()
            }
          }
          xhr.ontimeout = function () {
            reject('timeout')
          }
        xhr.open("POST", url, true)
        xhr.setRequestHeader("Content-Type","multipart/form-data");
        xhr.send(byteBuffer);
        })
      }

и ошибка выглядит следующим образом:

"result":null,"error":{"code":"request_parse_error","msg":"multipart: NextPart: EOF"}
...