J’ai fait une page (file.php) qui renvoie un fichier, c’est à dire son contenu et des headers associés.
Cette première page va être appelée par une autre page (render.php) et en fonction des paramètres GET passés dans la requêtes, un fichier différent va être retourné.
Donc :
- La page render.php appelle la page file.php, passe différents paramètres GET
- La page file.php, renvoie un fichier en fonction des paramètres qui lui sont envoyés
- En fonction du type de fichier reçu par render.php, j’affiche le fichier d’une façon ou d’une autre :
- Image : Je met l’url de file.php dans la balise image
- Text : Je met le contenu de file.php dans une div
- Video : Je met l’url de file.php en src de la balise source d’une balise video
- Audio : Je met l’url de file.php en src de la balise source d’une balise audio
Si c’est une image ou un fichier texte le contenu est affiché correctement mais lorsque c’est un fichier video ou audio, je n’ai pas d’erreur 404 pour la récuperation de la ressource, je n’ai juste pas de contenu dans ma balise audio ou video.
J’ai essayé de comparer les headers que je renvoie avec les headers renvoyés par le serveur lorsque l’on fait un appel « normal » à un fichier video/audio (ex: /song/mysong.ogg) et ça donne ça :
Appel normal :
Appel page file.php :< HTTP/1.1 200 OK
< Date: Sun, 03 Jun 2018 11:20:05 GMT
< Server: Apache/2.4.25
< Last-Modified: Sat, 02 Jun 2018 11:09:34 GMT
< ETag: "4cd498-56da6bc498154"
< Accept-Ranges: bytes
< Content-Length: 5035160
< Content-Type: audio/ogg
Le corps du message est identique pour les deux réponses et lorsque je passe l’url « normal » en source à ma balise, le fichier est lu.< HTTP/1.1 200 OK
< Date: Sun, 03 Jun 2018 11:20:43 GMT
< Server: Apache/2.4.25
< Pragma: no-cache
< Cache-Control: no-store, no-cache, must-revalidate
< Accept-Ranges: bytes
< Expires: Sun, 03 Jun 2018 15:20:43 CEST
< Content-Length: 5035160
< Content-Type: audio/ogg
Je ne trouve pas qu’il y aie quelque chose de véritablement différent entre les deux réponses.
Pouvez vous m’aider s’il vous plait ? Avez vous une idée ? Merci d’avance