首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中将formData对象转换为二进制?

如何在javascript中将formData对象转换为二进制?
EN

Stack Overflow用户
提问于 2019-06-11 02:45:56
回答 1查看 2.7K关注 0票数 0

let file = document.body.files[0],


function convertToBinary(file){
  // code
}

有一个API,我将用它来上传一个文件,它只接受二进制文件。

我可以将其转换为formData,但我不知道如何将其解析为二进制文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56531921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档