2016-09-21 13 views
0

Ich habe einen Link zu einer lokalen PDF-Datei, und ich brauche diese Datei als Base64-String. Ich programmiere mit JavaScript. Weiß jemand, wie ich diese Zeichenfolge bekommen kann?PDF-Datei in Base64-String mit JavaScript konvertieren

UPDATE:

Ich habe Objekt-Datei, weil ich die pdf heruntergeladen

+4

Mögliche Duplikate von [Konvertieren PDF in eine Base64-codierte Zeichenfolge in Javascript] (http://stackoverflow.com/questions/13538832/convert-pdf-zu-a-base64-encoded-string-in-javascript) –

+0

Sie sollten nicht base64 die pdf ... warum brauchen Sie das? – Endless

Antwort

2

Try this: -

<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> 

Von this

+0

Danke für Ihre Antwort! Ich bin mir nicht sicher, wo ich meinen Link setzen soll. Was bedeutet "document.getElementById (" inputFile "). Files;'? Gibt es ein Array von "Dateien" zurück? –

+0

Ich denke, es ist nicht möglich, ein Dateiobjekt von einer URL zu bekommen. Oder liege ich falsch? –

2

Mit Screw-FileReader & fetch

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

ich Sie könnten ein paar Grund, warum Sie nicht die base64 String brauchen und warum es unbequem. Aber ich weiß nicht, warum Sie es brauchen ... Der allgemeine Grund ist URL.createObjectURL und dass es ~ 3x größer ist

Verwandte Themen