let file = document.body.files[0],
function convertToBinary(file){
// code
}
有一个API,我将用它来上传一个文件,它只接受二进制文件。
我可以将其转换为formData,但我不知道如何将其解析为二进制文件。
发布于 2019-06-11 02:56:15
使用FileReader
应用编程接口
就我个人而言,我更喜欢ES7方法。但是我花了一段时间来适应它的语法。
首先读取文件的好处是,如果您愿意,可以在发布之前在客户端操作二进制文件。
使用ES5
function getBinaryFromFile(file, cb) {
const reader = new FileReader();
reader.addEventListener("load", cb.bind(this, reader.result));
reader.addEventListener("error", console.error.bind(this, err));
reader.readAsBinaryString(file);
}
// Usage
var file = document.body.files[0];
getBinaryFromFile(file, function(binary) {/*API call*/});
使用ES7异步/等待
// Get binary without ugly callbacks using ES7
function getBinaryFromFile(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.addEventListener("load", () => resolve(reader.result));
reader.addEventListener("error", err => reject(err));
reader.readAsBinaryString(file);
});
}
// Usage
var file = document.body.files[0],
binary = await getBinaryFromFile(file);
// API call
https://stackoverflow.com/questions/56531921
复制相似问题