2016-09-21 1 views
0

У меня есть ссылка на локальный файл pdf, и мне нужен этот файл в качестве строки base64. Я программирую с помощью JavaScript. Кто-нибудь знает, как я могу получить эту строку?Конвертировать PDF-файл в строку Base64 с JavaScript

UPDATE:

Я должен подать объект, потому что я скачал PDF

+4

Возможный дубликат [Конвертировать PDF в строку с кодировкой Base64 в Javascript] (http://stackoverflow.com)/questions/13538832/convert-pdf-to-a-base64-encoded-string-in-javascript) –

+0

Вам не нужно иметь base64 pdf ... зачем вам это нужно? – Endless

ответ

2

Попробуйте это: -

<input id="inputFile" type="file" onchange="convertToBase64();" /> 

<script type="text/javascript"> 
    function convertToBase64() { 
     //Read File 
     var selectedFile = document.getElementById("inputFile").files; 
     //Check File is not Empty 
     if (selectedFile.length > 0) { 
      // Select the very first file from list 
      var fileToLoad = selectedFile[0]; 
      // FileReader function for read the file. 
      var fileReader = new FileReader(); 
      var base64; 
      // Onload of file read the file content 
      fileReader.onload = function(fileLoadedEvent) { 
       base64 = fileLoadedEvent.target.result; 
       // Print data in console 
       console.log(base64); 
      }; 
      // Convert data to base64 
      fileReader.readAsDataURL(fileToLoad); 
     } 
    } 
</script> 

От this

+0

Спасибо за ваш ответ! Я не уверен, где я должен поместить свою ссылку. Что такое 'document.getElementById (" inputFile "). Files;'? Возвращает ли массив массив файлов? –

+0

Я думаю, что невозможно получить файл-объект из URL-адреса. Или я ошибаюсь? –

2

С Screw-FileReader & fetch

fetch('/file.pdf') 
.then(res => res.blob()) 
.then(blob => blob.dataUrl()) 
.then(base64 => console.log(base64)) 

Я мог бы дать вам несколько причин, почему вам не нужна строка base64 и почему это неудобно. Но я не знаю, зачем вам это нужно ... Общая причина URL.createObjectURL и что это ~ 3x больше