Ankündigung

Einklappen
Keine Ankündigung bisher.

Downloadbare Datei automatisch uploaden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Downloadbare Datei automatisch uploaden

    Liebe wissende Forumgemeinde,

    ich habe folgendes Problem: Ich habe eine Seite welche eine Tabelle per Klick als Excel generiert zum Download, durch ein Plugin das sich SheetJS nennt. Das funktioniert auch super, es wird eine HTML Table generiert (aus der Datenbank ) und darüber befindet sich ein Download Excel Button der den Download startet. Nun möchte ich allerdings diese Datei in einer automatisch generierten E-Mail anhängen und müsste dazu die generierte Excel Datei auf unseren Webserver laden - also ohne das der User auf Download Excel klickt und die Datei runterlädt und dann wieder submitted sondern ein "Versende" button der die Datei auf den Webserver hochlädt und die Datei versendet.

    Nun weiss ich jedoch nicht wie ich mittels AJAX oder JS (so denke ich ) diese Datei uploade bzw. übergebe .

    So sieht mein Code aus :
    PHP-Code:
    <?php

     $xlsxfile 
    "Example-".date('dmHi',$from)." - ".date('dmHi',$to).".xlsx" ;    
    echo 
    '<table class="table" id="table_exp1">';

                                        while( 
    $row sqlsrv_fetch_array$resultSQLSRV_FETCH_ASSOC) ) {
                                        
    print_r(sqlsrv_errors());
                                        
    $a =  $row['a'];
                                        
    $b =  $row['b'];
                                        echo 
    "<tr><td>$a</td><td>$b</td></tr>";  }
    echo 
    "</table>"  ?>
    Code:
     <script>         var wb = XLSX.utils.table_to_book(document.getElementById('table_exp1'), {sheet:"Example"});
            var wbout = XLSX.write(wb, {bookType:'xlsx', bookSST:true, type: 'binary'});
    
                      function s2ab(s) {
                      var buf = new ArrayBuffer(s.length);
                      var view = new Uint8Array(buf);
                            for (var i=0; i<s.length; i++)  view[i] = s.charCodeAt(i) & 0xFF;
                            return buf;
                       }
            $("#button-a").click(function(){
                    saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), '<?php echo $xlsxfile; ?>');        
           });  </script>
    Ich nehme an es geht nun um den Teil wo der Button Click ausgeführt wird, das hier nun eine Upload Funktion hinkommt.

    Hat jemand von euch eine Idee wie das realisierbar wäre bzw. in welche Richtung ich mich da einlesen müsste ?
    In meiner Recherce habe ich den Tipp bekommen das Ajax die Lösung sein könnten (Formdata) da ich davon jedoch nur wenig Ahnung habe würd ich nun um Unterstützung bitte



    Vielen Dank für eure Hilfe

  • #2
    Mache das auf dem Server und verwende zum Erstellen von Excel Dokumenten https://phpspreadsheet.readthedocs.io/en/latest/ dann brauchst du auch die sheetJS nicht mehr, da du die Datei ja dann einfach per Link zum Download anbieten kannst.

    Kommentar


    • #3
      Oft kommt man schneller weiter wenn man in die Dokumentation der Library schaut, statt in einem Forum zu fragen.

      Browser upload file (ajax) (click to show)
      https://docs.sheetjs.com/#user-conte...ting-workbooks

      Und ein Beispiel:
      https://github.com/SheetJS/sheetjs/t...ster/demos/xhr

      Kommentar

      Lädt...
      X