我在正确设置文件数据格式时遇到问题,因此我可以使用带有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>
。
我承认我不太清楚这意味着什么,所以我想我可能没有从文件中读取足够的数据?
感谢您提供的任何帮助。