gpt4 book ai didi

php - 通过 php 脚本加载图像时如何缓存图像

转载 作者:行者123 更新时间:2023-11-29 22:28:21 27 4
gpt4 key购买 nike

我有一个用作随机图像生成器的 php 脚本。该脚本在数据库中查询用户图像,并随机返回一个路径。一旦选择了路径,下面是负责返回图像的代码部分。

header('Content-Transfer-Encoding: binary');
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($path));
echo file_get_contents($path);

我是这样从客户端调用的

image.src = "/database/getRandomImage.php";

每次刷新页面时,我都会随机获得一张新图片。但是,如果我为并排图像多次调用 getRandomImage.php,它们都将是相同的图像。如果我像这样向调用添加一个随机属性

image.src = "/database/getRandomImage.php?path=" + Math.random() * 100;

图片变得随机。我认为这意味着浏览器正在根据我传递的随机属性缓存它们。问题是这个属性与实际图像无关。两个不同的图像可能会被缓存为同一个图像,并且可能不会从缓存中检索到同一个图像。 getRandomImage.php 有什么方法可以通知浏览器它正在发回的图片吗?

最佳答案

为什么不用 getRandomImage 是一个 PHP 函数,它返回图像的路径。您可以使用已填充的随机图像路径呈现页面。

<img src="<? echo getRandomImage() ?>">

然后您实际上可以使用真正的缓存 header 来提供您的图像,并且您的带宽不会受到如此严重的打击。

在页面呈现时在服务器端执行此操作,而不是之后。之后做更多的工作,而且正如您发现的那样,也更复杂。

关于php - 通过 php 脚本加载图像时如何缓存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com