如何将本地映像文件转换为Base64以POST到自定义API端点?

时间:2017-12-18 15:24:03

标签: javascript xmlhttprequest froala

我正在开发一个富文本编辑器的JavaScript库。目前,由于剪贴板是本地文件而我们无法从Word文档copy + paste,并且大多数浏览器阻止读取本地文件的能力。我们解决此问题的方法是将本地映像文件转换为base-64,并使用我们的本地API将映像存储在我们的服务器上,以便img具有适当的托管源。

问题是这必须完全用JavaScript处理,它仍然在浏览器中运行,我看不到本地文件能够转换它们:

Screenshot of expected error

这是我正在尝试使用的代码,但似乎无法找到一种完全在JavaScript中处理此代码的方法,而无需使用HTML中的文件加载器。

function convertToBase64(){
var xhr = new XMLHttpRequest();
  // Set up our request
  xhr.open('POST', 'http://uploadFileHere');
  //convert image to base64
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    }
    reader.readAsDataURL(xhr.response);
  }; 
  //handle the response from Image API
  xhr.onreadystatechange = function() {
    if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
        return xhr.responseText;
    }
  }
  xhr.send(base64String);
}

是否可以解决这个问题,或者我和我的团队是否必须提出另一种解决方案?

编辑:这是另一个富文本编辑器,可以从Word Froala复制和粘贴图像。如果这是不可能的,他们是如何做到的?

0 个答案:

没有答案