Получить base64 из локального пути к файлу (Windows) с помощью Jquery - PullRequest
0 голосов
/ 17 мая 2019

Мне нужно получить 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 голосов
/ 17 мая 2019

В браузерных средах вы не можете просто прочитать любой файл с диска из соображений безопасности.Пользователь должен явно выбрать файл, например, используя <input type="file" />.

. Это простой пример, который отображает представление base64 выбранного файла в textarea.Для этого вам не нужен 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>
...