我对如何缓存图像是全新的。
我使用PHP输出图库中的所有图像,并希望已显示的图像由浏览器缓存,因此PHP脚本不必再次输出相同的图像。我想要的只是图像显示得更快。
调用图像时,我喜欢这样:
<img src="showImage.php?id=601">
和showImage.php-file做:
showImage.php
$id = (int) $_GET['id']; $resultat = mysql_query(" SELECT filename, id FROM Media WHERE id = $id "); $data = mysql_fetch_assoc($resultat); ... //Only if the user are logged in if(isset($_SESSION['user'])){ header("Content-Type: image/jpeg"); //$data['filename'] can be = dsSGKLMsgKkD3325J.jpg echo(file_get_contents("images/".$data['filename']."")); }
如果您使用php在输出消息之前检查用户是否已登录,则您不希望浏览器缓存图像。
缓存的全部目的是调用服务器一次,然后再也不调用它。如果浏览器缓存图像,它将不会调用服务器,并且脚本也不会运行。取而代之的是,即使用户不再登录,浏览器也会从缓存中提取图像并显示它。这可能是一个很大的安全漏洞。