Bonjour,
J'ai réalisé une appli web dans laquelle de nombreuses images sont envoyées au client grâce à la fonction readfile($filePath) pour des raisons de confidentialité (il s'agit de miniatures de photos personnelles).
Comme il peut y en avoir plusieurs centaines d'affichées en même temps et que certaines actions de l'utilisateur nécessite un rafraîchissement d'une partie de la page cela provoque de très nombreuses requêtes inutiles puisque ces miniatures correspondent chacune à une adresse unique et l'image associée à une adresse pourra être supprimée, mais jamais remplacée par une autre.
Les adresses sont de la forme :
http://www.domain.tld/download.php?F...mage&id=201&TN
Et voici la fonction qui envoi le contenu des fichiers :
J'avais essayé avec les en-tête mis en commentaire, mais cela ne fonctionnait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private static function sendFile($filePath = null){ if ($filePath != null){ if (file_exists($filePath)){ $finfo = new \finfo(\FILEINFO_MIME_TYPE); $mimetype = $finfo->file($filePath); if ($mimetype === false){ self::sendFile(); return false; } header('Content-Type: ' . $mimetype); //header('Cache-Control: public, must-revalidate, max-age=3600'); //header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime($filePath)) . " GMT", true, 304); readfile($filePath); } else { self::sendFile(); return false; } } else { header('Content-Type: image/png'); readfile(PATH_IMAGES . DS . 'noimage.png'); } }
Partager