使用Jquery从本地文件路径(Windows)获取base64

时间:2019-05-17 07:27:38

标签: javascript jquery base64 filepath

我需要获取 base64 图像文件。

我所得到的就是这样的文件的本地文件路径:C:\APPL\scans\IMG555.jpg

我尝试了这段代码,但是似乎没有用。

var name = 'IMG555.jpg';
var path = '`C:\APPL\scans\';

export const fileToBase64 = (filename, filepath) => {
  return new Promise(resolve => {
    var file = new File([filename], filepath);
    var reader = new FileReader();
    // Read file content on file loaded event
    reader.onload = function(event) {
      resolve(event.target.result);
    };

    // Convert data to base64 
    reader.readAsDataURL(file);
  });
};

fileToBase64(name , path).then(result = {
  console.log(result);
});

我只得到base64的一部分(小长度)。因此,它不是有效的图像文件。

有人有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

在浏览器环境中,出于安全原因,您不能仅从磁盘读取任何文件。用户必须明确选择文件,例如使用<input type="file" />

这是一个简单的示例,它在textarea中显示所选文件的base64表示形式。您不需要jQuery即可。

function showBase64Representation() {
  var output = document.querySelector('textarea');
  var file    = document.querySelector('input[type=file]').files[0];
  var reader  = new FileReader();

  reader.addEventListener("load", function () {
    output.value = reader.result;
  }, false);

  if (file) {
    reader.readAsDataURL(file);
  }
}
<input type="file" onchange="showBase64Representation()"><br>
<textarea rows="10" cols="50"></textarea>