如何在Windows中以'.pem'扩展名上传文件

时间:2019-08-01 14:20:57

标签: javascript file encryption pem

我有一个应用程序正在使用带有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()。

1 个答案:

答案 0 :(得分:0)

我找到了答案。它是因为在Linux和Mac系统中从其名称获取文件类型。在Windows上,我们应该自己编写。