2016-05-17 9 views
0

Ich versuche, eine PDF in ein Array zu laden und dann wieder zu löschen. Ich erhalte nur den Fehler "Fehler beim Laden des PDF-Dokuments"Javascript/Jquery Blob zeigt kein Chrome PDF

Ich habe versucht mit readAsArrayBuffer und readAsBinaryString. Ich habe auch versucht, ohne Lock zu Uint8Array zu konvertieren.

Haben bei

Blob from javascript binary string

http://www.javascripture.com/Blob

https://developer.mozilla.org/en-US/docs/Web/API/FileReader sah

Und noch kein Glück:/

Mein Code folgt

<!DOCTYPE html> 
    <html> 
     <head> 
      <script src="/jquery-1.7.1.min.js" type="text/javascript"></script> 
      <script>   
      var $j = jQuery; 
       function handleFileSelect() {    
       if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { 
        alert('The File APIs are not fully supported in this browser.'); 
        return; 
       } 

       input = document.getElementById('fileinput'); 

       if (!input) { 
        alert("Um, couldn't find the fileinput element."); 
       } 
       else if (!input.files) { 
        alert("This browser doesn't seem to support the `files` property of file inputs."); 
       } 
       else if (!input.files[0]) { 
        alert("Please select a file before clicking 'Load'");    
       } 
       else { 
        file = input.files[0]; 
        fr = new FileReader(); 
        fr.onload = receivedText; 

        arrayBuffer = fr.readAsArrayBuffer(file); 

       } 
       } 

      var arrayBuffer; 

       function receivedText() { 
       document.getElementById('editor').appendChild(document.createTextNode(fr.result)); 
       }   

      function getFile(){ 
        var data = arrayBuffer; 
        var blob = new Blob([data], {type: "application/pdf"}); 

        var objectUrl = URL.createObjectURL(blob); 
        window.open(objectUrl); 
      } 
      </script> 
     </head> 
     <body> 
      <input type="file" id="fileinput"/> 
      <input type='button' id='btnLoad' value='Load' onclick='handleFileSelect();'> 
      <input type='button' value='Get' onclick='getFile();'> 
      <div id="editor"></div> 
     </body> 
    </html> 

Antwort

1

gerade editierten Codes verwenden

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="/jquery-1.7.1.min.js" type="text/javascript"></script> 
     <script> 
     var arrayBuffer="";  
     var $j = jQuery; 
      function handleFileSelect() {    
      if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { 
       alert('The File APIs are not fully supported in this browser.'); 
       return; 
      } 

      input = document.getElementById('fileinput'); 

      if (!input) { 
       alert("Um, couldn't find the fileinput element."); 
      } 
      else if (!input.files) { 
       alert("This browser doesn't seem to support the `files` property of file inputs."); 
      } 
      else if (!input.files[0]) { 
       alert("Please select a file before clicking 'Load'");    
      } 
      else { 
       file = input.files[0]; 
       fr = new FileReader(); 
       fr.onload = receivedText; 
       arrayBuffer = fr.readAsBinaryString(file); 


      } 

      } 

     // 

      function receivedText() { 
      document.getElementById('editor').appendChild(document.createTextNode(fr.result)); 
      }   

     function getFile(){ 

       var data = file; 
       var blob = new Blob([data], {type: "application/pdf"}); 
       var objectUrl = URL.createObjectURL(blob); 
       window.open(objectUrl); 
     } 
     </script> 
    </head> 
    <body> 
     <input type="file" id="fileinput"/> 
     <input type='button' id='btnLoad' value='Load' onclick='handleFileSelect();'> 
     <input type='button' value='Get' onclick='getFile();'> 
     <div id="editor"></div> 
    </body> 
</html> 

und auch einen anderen Code nicht Array nur um Hilfe

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="/jquery-1.7.1.min.js" type="text/javascript"></script> 
     <script> 
     var arrayBuffer="";  
     var $j = jQuery; 
      function handleFileSelect() {    
      if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { 
       alert('The File APIs are not fully supported in this browser.'); 
       return; 
      } 

      input = document.getElementById('fileinput'); 

      if (!input) { 
       alert("Um, couldn't find the fileinput element."); 
      } 
      else if (!input.files) { 
       alert("This browser doesn't seem to support the `files` property of file inputs."); 
      } 
      else if (!input.files[0]) { 
       alert("Please select a file before clicking 'Load'");    
      } 
      else { 
       file = input.files[0]; 
       fr = new FileReader(); 
       fr.onload = receivedText; 
       arrayBuffer = fr.readAsDataURL(file); 

      } 

      } 

     // 

      function receivedText() { 
      document.getElementById('editor').appendChild(document.createTextNode(fr.result)); 
      }   

     function getFile(){ 
      //alert(arrayBuffer); 
       var data = document.getElementById('editor').innerHTML; 
       alert(data); 
       var blob = new Blob([data], {type: "application/pdf"}); 
       var objectUrl = URL.createObjectURL(blob); 
       window.open(data); 
     } 
     </script> 
    </head> 
    <body> 
     <input type="file" id="fileinput"/> 
     <input type='button' id='btnLoad' value='Load' onclick='handleFileSelect();'> 
     <input type='button' value='Get' onclick='getFile();'> 
     <div id="editor"></div> 
    </body> 
</html> 
+0

Für weitere Informationen besuchen: http://www.7logic.info/2016/10/jquery- Lese-PDF-Datei-als-Array-und.html – Akshath