2009-10-04 6 views
10

Auf die gleiche Weise, wie es möglich ist, Bilder mit PHP, für den Einsatz in CAPTACHAS und so weiter, ist es möglich, das gleiche mit Audiodateien zu tun?Kann ich MP3-Dateien mit PHP bereitstellen?

Ich habe versucht, diese

<?php 

$track = "sometrack.mp3"; 

if(file_exists($track)) { 
    header('Content-type: audio/mpeg'); 
    header('Content-length: ' . filesize($track)); 
    header('Content-Disposition: filename="sometrack.mp3"'); 
    header('X-Pad: avoid browser bug'); 
    header('Cache-Control: no-cache'); 
    print file_get_contents($track); 
} else { 
    echo "no file"; 
} 

Ich bin mit Safari, die MP3-Dateien abspielen kann. Es bringt Safari in den richtigen Modus, ich bekomme die Quicktime-Steuerung für ein paar Sekunden und dann "Kein Video".

Ich versuche, Dateien vor nicht autorisiertem Download zu schützen, falls Sie sich fragen, warum ich das machen möchte.

+0

Sie sollten in der Lage zu - nicht sicher, warum das nicht funktioniert, aber Sie sind auf der richtigen Linie. Versuchen Sie Wget/Curl von der Befehlszeile auf der URL, auf die Sie die Datei zugreifen, und überprüfen Sie, ob es wie erwartet funktioniert. –

Antwort

14

Ihre Content-Disposition sollte sein: obwohl

header('Content-Disposition: attachment; filename="sometrack.mp3"'); 

Nicht sicher, ob das ist das Problem. Ich würde auch empfehlen readfile zur Ausgabe mit der Datei:

readfile($rSong); 

Auch kann es nicht schaden, ein erschöpfenden Content-Type-Header zu verwenden, und stellen Sie den Content-Transfer-Encoding:

header("Content-Transfer-Encoding: binary"); 
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 
+1

diese zusätzlichen Header machten den Unterschied! Vielen Dank. Obwohl ich "attachment" für jetzt entfernt habe, da ich die Tracks im Browser abspielen möchte, muss ich es später verwenden, wenn Leute Tracks herunterladen. Toller Rat, danke. – gargantuan

+0

Beachten Sie, dass 'XSendfile' (auf Apacha und nginx otoh) die Last auf dem Server/php erheblich reduzieren kann und weiterhin Dokumente außerhalb des Dokumentstammverzeichnisses verwendet. – Wrikken

1

versuchen Sie es mit This Class es unterstützt Download Lebenslauf und Geschwindigkeitsbegrenzung glauben Sie mir brauchen Sie als Besitzer von MP3-Downloads Website