Bonjour,
je travaille sur une partie d'un projet dans laquelle je dois faire lire des fichiers audio ou video. La lecture se fait simplement à l'aide des balises html5 appropriées.
L'ennui c'est que les fichiers peuvent être stockés en des endroits du serveurs dont l'accès est interdit en http. J'utilise donc un script php (qui a le droit de lire ces fichiers où qu'ils soient) qui devrait se comporter comme le type de fichier qu'il lit. Pourtant, lorsque le navigateur (Safari) lit le résultat du script, je n'ai pas droit au player audio/video habituel, il n'y a pas de progress bar, seulement l'indication "Diffusion en direct":
http://cl.ly/image/0G3Q1e2e3Z3t/ppp.png
C'est assez embêtant ! Voilà mon script (tout ce qu'il y a de plus simple):
(La double vérification de variable s'explique par des inclusions éventuelles qui ne font pas intervenir de données GET)
J'imagine qu'il faut ajouter des header particuliers mais j'ai eu beau chercher, rien n'a fonctionné.
Merci de votre aide
Modifié par juliendargelos (11 Jun 2014 - 23:57)
je travaille sur une partie d'un projet dans laquelle je dois faire lire des fichiers audio ou video. La lecture se fait simplement à l'aide des balises html5 appropriées.
L'ennui c'est que les fichiers peuvent être stockés en des endroits du serveurs dont l'accès est interdit en http. J'utilise donc un script php (qui a le droit de lire ces fichiers où qu'ils soient) qui devrait se comporter comme le type de fichier qu'il lit. Pourtant, lorsque le navigateur (Safari) lit le résultat du script, je n'ai pas droit au player audio/video habituel, il n'y a pas de progress bar, seulement l'indication "Diffusion en direct":
http://cl.ly/image/0G3Q1e2e3Z3t/ppp.png
C'est assez embêtant ! Voilà mon script (tout ce qu'il y a de plus simple):
<?php
if(isset($_GET['path'])) $path=$_GET['path'];
if(isset($path)) {
if(file_exists($path)) {
if(is_file($path)) {
if(is_readable($path)) {
header('Content-type: '.mime_content_type($path));
header('Content-Length: '.filesize($path));
readfile($path);
}
}
}
}
?>
(La double vérification de variable s'explique par des inclusions éventuelles qui ne font pas intervenir de données GET)
J'imagine qu'il faut ajouter des header particuliers mais j'ai eu beau chercher, rien n'a fonctionné.
Merci de votre aide
Modifié par juliendargelos (11 Jun 2014 - 23:57)