MP3-Download mit erzwungenem Download-Dialog?
Daniel
- programmiertechnik
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
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
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
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
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
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