Daniel: MP3-Download mit erzwungenem Download-Dialog?

Hallo.
Weiss jemand, ob es möglich ist, ein MP3-File beispielsweise auf einer Internetseite zum Download anzubieten, so dass sich beim Klick auf den Link in jedem Fall der Download-Dialog öffnet. Ich möchte auf gar keinen Fall, dass der Browser die Datei öffnet und "abspielt".

Wer kann helfen? Über eine schnelle EMail wäre ich dankbar daniel@besier.org

Grüße

Daniel

  1. Hallo.
    Weiss jemand, ob es möglich ist, ein MP3-File beispielsweise auf einer Internetseite zum Download anzubieten, so dass sich beim Klick auf den Link in jedem Fall der Download-Dialog öffnet. Ich möchte auf gar keinen Fall, dass der Browser die Datei öffnet und "abspielt".

    Ja, weiß sicher jemand. ;)

    Wer kann helfen? Über eine schnelle EMail wäre ich dankbar daniel@besier.org

    Mail gibts hier nicht. Komm wieder und schau nach Antworten.

    Grüße

    Daniel

    Lösung deines Problems (aber auch nur, weil du so nett gegrüßt hast): Sende einfach den Content-type "application/octet-stream" mit der Datei. Du mußt deinen Webserver entsprechend konfigurieren, daß er das tut, entweder per Script, oder bei den Mime-Typen der Konfigurationsdatei (z.B. /etc/httpd/httpd.conf, oder auch .htaccess).

    - Sven Rautenberg

    1. Lösung deines Problems (aber auch nur, weil du so nett gegrüßt hast): Sende einfach den Content-type "application/octet-stream" mit der Datei. Du mußt deinen Webserver entsprechend konfigurieren, daß er das tut, entweder per Script, oder bei den Mime-Typen der Konfigurationsdatei (z.B. /etc/httpd/httpd.conf, oder auch .htaccess).

      Content-Type mitsenden? Webserver per Script entsprechend konfigurieren?

      Noch nie gehört. Wie geht das?

      Viele Grüße

      Frank

      P.S.
      Einfach-Lösung: als zip-Datei packen

      1. Hallo!

        Content-Type mitsenden? Webserver per Script entsprechend konfigurieren?

        In der .htaccess-Datei sollte so aussehen, aber kann ich nicht mit 100%iger Sicherheit sagen.

        AddType application/octet-stream .mp3

        Wenn Du PHP zur Verfügung hast, kannst Du es so machen, was auch mit anderen Script- oder Programmiersprachen geht:

        // download.phtml
        <?PHP
        $verzeichnis = "/pfad/dein_homeverzeichnis/mp3Verzeichnis/";
        $dateiname = sprintf("%s/%s", $verzeichnis, $datei);
        header("Content-Type: application/octet-stream");
        $speicher_name = basename($datei);
        header("Content-Disposition: attachment; filename="".$speicher_name.""");
        readfile($dateiname);
        ?>

        Mehr kommt nicht in die Datei download.phtml. Es darf keine Leerzeilen geben, also von oben an der Datei. Weil sonst der header nicht gesendet wird.

        Von einer anderen Seite kannst Du nun so verlinken:
        download.phtml?datei=song.mp3

        MfG, André Laugks

        1. Wenn Du PHP zur Verfügung hast, kannst Du es so machen, was auch
          mit anderen Script- oder Programmiersprachen geht:

          // download.phtml
          <?PHP

          [viel code]

          ?>

          Das geht auch einfacher:

          <?php
          header("Content-Type: application/octet-stream");
          readfile("dein_dateiname");
          exit();
          ?>

          Aber die .htaccess-Variante ist besser und funktioniert sicher auch auf den meisten Servern, die .htaccess zulassen.

          Gruß,
          soenk.e

          1. Hallo!

            <?php
            header("Content-Type: application/octet-stream");
            readfile("dein_dateiname");
            exit();
            ?>

            Klar ist das viel einfacher! Nur so kann ich mir bei einem schlecht konfiguriertem Server jede Datei downloaden. Der Sicherheit Deiner Methode geht in richtig 0.

            --> download.phtml?datei=/etc/datei

            Meine Methode ist auf ein bestimmtest Verzeichnis beschränkt.

            Deine Methode bietet auch kein Dateiname an, also der User muß den Dateinamen und Extension selbst eingeben.

            Also was heißt viel Code? Du bist ein Scriptkidi..., oder? Schreibe so ein Mißt nicht noch einmal irgendwo nieder, Du wirst sonst ausgelacht!

            MfG, André Laugks

  2. Vielen Dank!