Funktion um Datei Download zu starten

strukturart

Erfahrenes Mitglied
Code:
($('#lnk')[0].click())
Wenn die Download-Dateien mit mp3 ogg.... enden funktioniert der Download jedoch nicht wenn z.B.: ?var=xyz an die url angehängt wird, dann öffnet der Browser ein neues Fenster.

Ich habe das App auf Github: strukturart/rss-reader
 

Sempervivum

Erfahrenes Mitglied
Ich habe versucht, das zu reproduzieren, aber ohne Erfolg, ein MP3 wird problemlos herunter geladen.
Code:
    <a id="lnk-simple" href="thread367-grid-hightlight-row-2.html" download>Simple File</a>
    <a id="lnk-get" href="testget.php?abc=11111&def=22222" download>GET parameters</a>
    <a id="lnk-audio-get" href="audio\01_-_The_Greatest_Cowboy_Of_Them_All.mp3?abc=11111&def=22222" download>GET
        parameters audio</a>
    <button id="btn-simple">Simple File</button>
    <button id="btn-get">GET parameters</button>
    <button id="btn-audio-get">GET parameters audio</button>
    <script>
        $('#btn-simple').on('click', () => {
            $('#lnk-simple')[0].click();
        });
        $('#btn-get').on('click', () => {
            $('#lnk-get')[0].click();
        });
        $('#btn-audio-get').on('click', () => {
            $('#lnk-audio-get')[0].click();
        });
    </script>
 

Sempervivum

Erfahrenes Mitglied
Daran hatte ich auch schon gedacht, ob sich die Browser vielleicht unterschiedlich verhalten. Hast Du die Möglichkeit, einen anderen zu testen?
Wenn alle Stricke reißen, könntest Du die URL-Parameter auch durch ein replace aus der URL entfernen, etwa so:
url = url.replace(/\?.*$/, '');
 

strukturart

Erfahrenes Mitglied

basti1012

Erfahrenes Mitglied
Ja ,bei mir geht das auch.Nette funktion die ich so noch nicht kannte und bis jetzt auch immer anders gemacht habe.
Dort schreibt ja einer
Darüber hinaus würde ich empfehlen, die Song-Datei auf Ihrem Server zu speichern, damit neue Anforderungen für diesen Song einfach wieder von Ihrem Server heruntergeladen werden können.
( wenn richtig übersetzt ).
Ist das besser ?
Man kann ja eigentlich froh sein das dann Datenvolumen und Serverauslastung ( wenn man das so nennt ) beim Fremdserver ist.
Was meint ihr dazu ?
 

Sempervivum

Erfahrenes Mitglied
Man kann ja eigentlich froh sein das dann Datenvolumen und Serverauslastung ( wenn man das so nennt ) beim Fremdserver ist.
Das ist ziemlich egoistisch gedacht :D Aber die Ladezeit des externen Servers kommt ja bei einem Proxy zu der eigenen Ladezeit hinzu. Hat man solch einen Cache, entfällt erstere.
Ich habe mal an einem Projekt mit gearbeitet, wo die Reaktionszeiten der fremden Server ziemlich schwach waren und außerdem eine Vielzahl von Dateien geladen werden mussten. Da kam man an die Grenzen eines shared Hostings und es ging nicht ohne einen Cache.
 

strukturart

Erfahrenes Mitglied
Für die Lösung mit dem Proxy brauche ich PHP ? Das kann ich bei KaiOs nicht verwenden da geht nur JS.
Jedoch gibt es noch im OS die -Möglichkeit von JS Ebene Shell Befehle auszuführen z.B.: cUrl.
 

strukturart

Erfahrenes Mitglied
Ich bin eine Schritt weiter und am testen:

Javascript:
 fetch(link_download)
                   .then(res => res.blob())
                   .then(blob => {

                       var sdcard = navigator.getDeviceStorage("music");
                       var file = new Blob([blob], { type: "audio/mpeg" });

                       var request = sdcard.addNamed(file, title + ".mp3");

                       request.onsuccess = function() {
                           var name = this.result;
                           toaster('File "' + name + '" successfully wrote on the storage area');
                       }

                       // An error typically occur if a file with the same name already exist
                       request.onerror = function() {
                           alert('Unable to write the file: ' + this.error);
                       }
                   });