Sur un site Web, les utilisateurs peuvent télécharger des photos. Pour des raisons de sécurité, ils sont stockés en dehors du dossier webroot (public_html). Quand je dois montrer l'image, j'envoyer les en-têtes et avoir lu et sortie « readfile » les données d'image, comme si:Problème lors de l'affichage d'images stockées en dehors du dossier racine Web
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-type: image/jpg');
header('Content-Length: ' . $filesize);
readfile($path_url . '/' . $photo);
Cela fonctionne très bien, mais le site est en croissance et cela commence à être fardeau sur le serveur. Question: existe-t-il un moyen d'envoyer les données de l'image ou de l'image à l'utilisateur, sans que le serveur doive d'abord charger l'image (évidemment, l'image étant encore stockée en dehors du dossier webroot)?
Merci!
David
Pouvez-vous définir «charge» en chiffres, s'il vous plaît? –
Je suis curieux ... pour quelles raisons de sécurité? Y a-t-il des photos que certains utilisateurs ne sont pas autorisés à voir? Sinon, si toutes les images sont visibles publiquement ... Je ne suis pas tout à fait sûr de ce que cela a. – mpen
@col. scrapnel, je n'ai pas de chiffres durs j'ai peur. Mais il y a des problèmes de mémoire, le serveur devient lent, et des messages "Utilisation excessive des ressources". – David