Christian: Mehrere Downloads über JS, Download von .txt - Dateien

Hallo HTMLer,

ich habe folgende Probleme, und komme jetzt schon seit langem Forum-Wälzen nicht mehr weiter:

Es geht darum, über einen Button eine JS-Funktion zu starten, welche zwei Dateien, eine .txt und eine .zip herunterläd. Dies gestaltet sich als schwieriger als angenommen. Beide zusammen zu zippen oder das .txt-File zu zippen fallen leider als Lösung aus.

Es treten 2 Probleme auf:

  1. bei 2x location.href hintereinander wird das erste ignoriert -die .txt-Datei über window.open geöffnet funktioniert - weiss da jemand noch eine andere Lösung? In Netscape wird nämlich immer, egal welcher file-type, ein neues Fenster geöffnet, was ich nicht brauche.

  2. im IE wird die .txt-Datei automatisch angezeigt, ebenso .rtf-Dateien... Über die MIME-Types im <a>-Tag lässt sich das ja angeblich (wenigstens für den Netscape..) unterbinden. Da das der wohl häufigst benutzte Browser sein wird, würde mir das schon reichen.
    Wie setze ich aber in JS den MIME-Type?

Auch für andere Anregungen, wie ich mein Problem lösen kann, wäre ich dankbar.

Gruß
Christian

  1. Hallo HTMLer,

    ich habe folgende Probleme, und komme jetzt schon seit langem Forum-Wälzen nicht mehr weiter:

    Könnte daran liegen, daß das, was du willst, einfach nicht geht... ;)

    Es geht darum, über einen Button eine JS-Funktion zu starten, welche zwei Dateien, eine .txt und eine .zip herunterläd. Dies gestaltet sich als schwieriger als angenommen. Beide zusammen zu zippen oder das .txt-File zu zippen fallen leider als Lösung aus.

    Es treten 2 Probleme auf:

    1. bei 2x location.href hintereinander wird das erste ignoriert -die .txt-Datei über window.open geöffnet funktioniert - weiss da jemand noch eine andere Lösung? In Netscape wird nämlich immer, egal welcher file-type, ein neues Fenster geöffnet, was ich nicht brauche.

    Klar, denn ein Fenster kann ja nur ein href haben. Du setzt das erste href, dann sofort das zweite, und das gilt dann. Ist identisch mit dem schnellen Tippen von zwei URLs nacheinander im gleichen Fenster.

    Das führt zur möglichen Lösung, doch einfach zwei Popup-Fenster aufzumachen, die dann die Dateien herunterladen. Vielleicht machst du es noch optisch etwas netter, indem du zuerst eine HTML-Datei mit etwas Text oder Grafik in die Popups lädst ("Bitte warten sie, während der Download startet..."), und dann mit META-Refresh den Download jeweils einer Datei startest.

    1. im IE wird die .txt-Datei automatisch angezeigt, ebenso .rtf-Dateien... Über die MIME-Types im <a>-Tag lässt sich das ja angeblich (wenigstens für den Netscape..) unterbinden. Da das der wohl häufigst benutzte Browser sein wird, würde mir das schon reichen.
      Wie setze ich aber in JS den MIME-Type?

    In Javascript? Garnicht. Mime-Typen werden vom Server gesetzt. Wenn du nicht willst, daß deine Dateien vom Browser angezeigt werden, darf der Server nicht text/plain als Mimetyp senden, weil das JEDER Browser als anzeigbaren Text interpretiert, den der Benutzer allerdings manuell abspeichern kann.

    Wenn du den Mime-Typ deiner .txt-Dateien z.B. auf application/binary setzt, dann wird die Datei i.d.R. immer auf der Platte gespeichert (siehe .htaccess-Datei). Das kann aber natürlich stören, wenn du die Texte auch im Browser anzeigen willst.

    Auch für andere Anregungen, wie ich mein Problem lösen kann, wäre ich dankbar.

    Gruß
    Christian

    - Sven Rautenberg

    1. Hallo Sven,

      vielen Dank für Deine Ratschläge. Haben mir sehr geholfen.

      Gruss Christian