Page 1 sur 1

Audio - Lire un fichier "privé"

Posté : 14 juil. 2018, 21:05
par stephweb
Bonjour.

Je viens demander de l'aide SVP, car je souhaite dans une page :

lire un fichier audio (mp3) qui n'est pas dans le repertoire public.

J'ai fait ceci :
<?php
$path = '/var/www/mon-site/storage-audios/test.mp3';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
?>
<audio controls controlsList="nodownload">
    <source src="<?php echo 'data:audio/'.$type.';base64,'.base64_encode($data); ?>" type="audio/mp3">
    Your browser does not support the audio tag.
</audio>
ça fonctionne, mais ça me fait un peu ramer ma page, et je ne pense pas que se soit une manière "propre" de faire.

Comment on peut faire SVP pour lire un fichier privé sur le serveur dans une balise html audio ?

Merci beaucoup.

Re: Audio - Lire un fichier "privé"

Posté : 15 juil. 2018, 23:57
par @rthur
Il faut être conscient que du moment que met un fichier en écoute sur le web, qui plus est dans une balise HTML5 <audio>, il n'existe pas de façon sûre à 100% qui permettent de garantir que ce fichier ne soit pas récupéré.

Une solution serait de faire un fichier PHP qui va servir de proxy pour vérifier que l'utilisateur a les droits pour accéder au contenu (si tu as des droits utilisateurs définis), puis recracher le code du fichier audio (echo file_get_contents($fichier_test)).
Pour + de sécurité, tu peux ajouter un token en paramètre que tu changera régulièrement.