Configurer apache pour servir de PHP quand un fichier MP3 est demandé
Je suis en train de travailler sur un moyen de servir des fichiers MP3 via PHP et après un peu d'aide forment le massif, je l'ai eu de travail ici
Cependant, cet exemple ne fonctionne pas lorsque je l'utilise comme source dans une balise audio comme ce
<html>
<head>
<title>Audio Tag Experiment</title>
</head>
<body>
<audio id='audio-element' src="music/mp3.php" autoplay controls>
Your browser does not support the audio element.
</audio>
</body>
</html>
et voici le PHP
<?php
$track = "lilly.mp3";
if(file_exists($track))
{
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-length: ' . filesize($track));
header('Content-Disposition: filename="lilly.mp3"');
header('X-Pad: avoid browser bug');
Header('Cache-Control: no-cache');
readfile($track);
}else{
echo "no file";
}
Donc je pense (et cela peut être une très mauvaise idée, me direz-vous) que je pourrais être capable de configurer Apache pour servir un fichier PHP quand quelqu'un demande un .MP3.
J'ai donc trois questions
- Ce travail
- Bonne Idée Ou Mauvaise Idée?
- Qu'est ce que je dois faire? Serait de mettre "AddType application/x-httpd-php .mp3", il int conf httpd faire?
OriginalL'auteur gargantuan | 2009-10-04
Vous devez vous connecter pour publier un commentaire.
Il y a quelques erreurs dans ton code:
audio/mpeg
.inline
.Le reste a l'air bien. Mais je voudrais aussi envoyer le code d'état 404 si le fichier ne peut pas être trouvé.
OriginalL'auteur
Vous pouvez simplement faire en sorte que vous avez un mod_rewrite règle à exécuter à chaque demande pour la musique/*.mp3 par le biais de votre mp3.php fichier.
Par exemple, quelque chose comme cela
mp3.php peuvent ensuite récupérer le fichier demandé de $_GET['fichier'], mais si vous allez avec cette approche, je vous recommande de santé mentale vérifiez le nom de fichier, pour s'assurer qu'il seulement fait référence à un fichier dans le répertoire souhaité.
Cette solution vous permet d'avoir .mp3 Url, mais qui permet d'intercepter les requêtes avec du PHP. Ce n'est pas tout à fait ce que tu voulais, mais je l'ai commencé j'ai donc terminé!
Bel effort. Quelqu'un, quelque part va trouver très utile.
Génial. C'est exactement ce que je cherchais. Un moyen de forcer tout pour être filtré par un fichier php. Ce semble comme un bon moyen de limiter le téléchargement de fichiers.
OriginalL'auteur
Utiliser l'en-tête x-sendfile au lieu de readfile pour mieux performanse.
http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/
OriginalL'auteur
Celui-ci fonctionne pour moi (dans .htaccess):
OriginalL'auteur