我有一个应用程序正在使用带有crypto.js的publicKey创建文件。用户可以将此文件作为“ PublicKey.pem”作为证书下载。在同一应用程序中,用户可以上传此文件,应用程序将加密密钥并将其设置为字符串。所有这些在Mac和Linux上都可以正常运行。但是,当我尝试在Windows上上传相同文件时,该文件没有“类型”,并且无法使用Reader读取。在Windows中,上传带有.pem扩展名的文件有何区别?我该如何解决?
我要下载文件的代码:
let element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' +
encodeURIComponent(data));
element.setAttribute('download', "PublicKey.pem");
element.style.display = 'none';
document.body.appendChild(element);
element.click();
我要上传文件的代码:
const file = event.target.files[0]
let reader = new FileReader()
const textFile = "application/x-x509-ca-cert";
if (file.type.match(textFile)) {
reader.onload = function (event) {
self.setState({ privateFile: event.target.result });
}
}
reader.readAsText(file);
我的期望是读取文件'PublicKey.pem',但是现在我正在获取没有类型的文件,并且在Windows上无法读取FileReader()。
答案 0 :(得分:0)
我找到了答案。它是因为在Linux和Mac系统中从其名称获取文件类型。在Windows上,我们应该自己编写。