【问题标题】:How to upload files on Windows with '.pem' extension如何在 Windows 上上传带有“.pem”扩展名的文件
【发布时间】:2019-08-01 14:20:57
【问题描述】:

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

【问题讨论】:

    标签: javascript file encryption pem


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 2019-06-19
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多