PHP: MP3-Download erzwingen - nicht im Browser abspielen

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
_____
Mitglied
Beiträge: 6
Registriert: 25.06.2011 22:04

PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von _____ »

Hi!

Ich nutze PHPBB 3.0.8

Wir sind ein paar Dutzend Musiker und haben ein internes Forum und wir bieten uns hin und wieder unsere selbst produzierten Songs als MP3 zum Download an. Dafür habe ich neuerdings einen Download-Button als BBCode eingerichtet, weil ich einen Button schöner finden, als nur einen Text-Link mit dem Vermerk (Download: Rechtsklick -> Ziel speichern unter...). Nun wird beim Klick auf den Download-Button aber bei meinem Browser (und bei fast allen anderen auch) die MP3 im Browser mit QuickTime abgespielt, weil es halt im Browser so eingestellt ist. Ich möchte nun den Download der MP3's, die alle im selben Ordner auf unserem Server sind, erzwingen - per PHP soll das ja machbar sein.

Habe das hier gefunden:

Code: Alles auswählen

<? 
$datei = "download_verzeichnis/download_datei.abc";
$dateiname = basename($datei);
$groesse = filesize($datei);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$dateiname);
header("Content-Length:".$groesse);
readfile($datei);
?>
Wie bekomme ich es hin, dass alle Dateien mit der Endung MP3 aus diesem Verzeichnis beim User als erzwungenen Download zu behandeln? Ich weiß auch nicht, welche Datei ich ändern muss.

Hoffe, Ihr könnt mir helfen.
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von Elsensee »

Hiermit könnte dir geholfen sein. (Damit meine ich, du solltest dir mal "Content-Type" ansehen :wink: )
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
_____
Mitglied
Beiträge: 6
Registriert: 25.06.2011 22:04

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von _____ »

Okay, habe jetzt zwei Sachen verändert. Zum einen:

Code: Alles auswählen

$datei = "download_verzeichnis/*.mp3
- kann man das so machen?

Und dann noch das hier:

Code: Alles auswählen

header("Content-Type: audio/mpeg");

Code: Alles auswählen

<?
$datei = "download_verzeichnis/*.mp3";
$dateiname = basename($datei);
$groesse = filesize($datei);
header("Content-Type: audio/mpeg");
header("Content-Disposition: attachment; filename=".$dateiname);
header("Content-Length:".$groesse);
readfile($datei);
?>
Bei Content-Disposition bin ich mir noch nicht sicher, was da rein muss. Und wo der Code rein kommt, ist mir auch noch nicht klar. :)
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von Elsensee »

_____ hat geschrieben:Okay, habe jetzt zwei Sachen verändert. Zum einen:

Code: Alles auswählen

$datei = "download_verzeichnis/*.mp3
- kann man das so machen?
[...]
Ganz klares Nein! Der Browser kann damit nichts anfangen - der Pfad zur Datei muss da sein. :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
_____
Mitglied
Beiträge: 6
Registriert: 25.06.2011 22:04

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von _____ »

Das heißt, ich muss alle MP3's einzelnd irgendwo in eine PHP-Datei schreiben? Das kann ja nicht sein, oder? Man muss doch sicher die Möglichkeit haben, dass alle Dateien aus Verzeichnis XY gleich behandelt werden?! Sonst ist das ja keine Lösung. Ich kann ja nicht jedes Mal, wenn jemand was hochladen will, den Dateinamen in PHP hinzufügen.
Charlie_M
Mitglied
Beiträge: 1210
Registriert: 17.07.2008 13:09
Kontaktdaten:

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von Charlie_M »

Du könntest den hinteren Teil (also mp3) abtrennen und mittels Switch (IF ...) entsprechend abarbeiten.
Zuletzt geändert von Charlie_M am 26.06.2011 02:20, insgesamt 1-mal geändert.
_____
Mitglied
Beiträge: 6
Registriert: 25.06.2011 22:04

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von _____ »

Habe es geschafft. Trotzdem Danke!

Habe eine .htaccess in den Ordner mit den MP3's abgelegt. In die .htaccess habe ich folgenden Code hinein geschrieben:

Code: Alles auswählen

AddType application/octet-stream .mp3
Wenn ich nun auf den Download-Button klicke, fragt mich Firefox, wo ich die Datei abspeichern möchte. Dank geht raus an Kugelfisch23 aus dem gulli:board. Seine hilfreiche Antwort und seine Meinung zur PHP-Lösung findet Ihr hier.
_____
Mitglied
Beiträge: 6
Registriert: 25.06.2011 22:04

Re: PHP: MP3-Download erzwingen - nicht im Browser abspielen

Beitrag von _____ »

Damit die MP3's im Internet Explorer ebenfalls heruntergeladen werden können, ohne dass der IE sie direkt im Browser abspielt, muss man der htaccess noch folgendes hinzufügen:

Code: Alles auswählen

Header set Content-Disposition attachment
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“