Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP图像缓存_Php_Image_Caching_Facebox_Uploader - Fatal编程技术网

PHP图像缓存

PHP图像缓存,php,image,caching,facebox,uploader,Php,Image,Caching,Facebox,Uploader,我创建了一个迷你图库,我所做的只是使用FTP,没有数据库,所以当我上传一张照片时,它被命名为“image1.jpg”,然后如果我上传另一张照片,它被命名为“image2.jpg”,依此类推。好吧,如果我删除image1,那么image2会自动重命名为image1.jpg,如果还有更多,所有的都会重新命名 问题是,除非我清除缓存,否则现在新映像1将显示旧映像。我找到了一个小型解决方案来解决这个问题: $rand = rand(100,1000); <img src="images/image

我创建了一个迷你图库,我所做的只是使用FTP,没有数据库,所以当我上传一张照片时,它被命名为“image1.jpg”,然后如果我上传另一张照片,它被命名为“image2.jpg”,依此类推。好吧,如果我删除image1,那么image2会自动重命名为image1.jpg,如果还有更多,所有的都会重新命名

问题是,除非我清除缓存,否则现在新映像1将显示旧映像。我找到了一个小型解决方案来解决这个问题:

$rand = rand(100,1000);
<img src="images/image1.jpg?<?=$rand;?>">
$rand=rand(1001000);
">
这很好,但我发现它不适用于facebox,每当我尝试在facebox中查看全尺寸图像时,它都无法读取带有随机数的URL,它只会显示大量字符,通常会使我的浏览器崩溃


有更好的方法解决此问题吗?

您可以在图像目录中不放置任何缓存头。

您可以在图像目录中不放置任何缓存头。

为什么不在删除图像时保持图像名称的原样?似乎没有必要仅仅因为您删除了一个图像就重命名图像。这就是我在删除图像时对图像的调用方式播放它们时,我只需使用for循环,计算FTP中有多少张照片,然后轻松显示它们。如果有必要,我可以改变照片库的编码方式,只是想看看是否有此方法的解决方案!看看@Jacob写的关于无缓存头的内容。这就是您想要采取的方法。为什么不保留删除图像时的图像名称?似乎没有必要因为删除了图像而重命名图像。这正是我在显示图像时调用图像的方式,我只需使用for循环并计算FTP中的照片数量,然后轻松地显示它们。我可以改变照片的显示方式o Gallery是编码的,如果有必要的话,我只是想看看这个方法是否有解决方案!看看@Jacob写的关于无缓存头的内容。这就是你想要采取的方法。谢谢Jacob。很抱歉问了这个愚蠢的问题,但我到底该怎么做?我有以下无缓存代码:对不起,格式错误这里。我只是把那个片段放在画廊页面的顶部吗?你在图像目录上的意思是什么?包含图像的目录应该得到一个无缓存过滤器。这应该在服务器上完成,而不是通过php。@drew:我在我的个人资料的分数上给你投了高票。我相信你不了解子目录不是你的错重要的是。如果每个人都希望每个人都问他们已经知道的问题,那么拥有这个网站有什么意义呢?谢谢Jacob。很抱歉这个愚蠢的问题,但我到底该怎么做?我有下面的无缓存代码:对不起,这里的格式不好。我是不是把这个片段放在图库页面的顶部?图像目录是什么意思?包含图像的目录应该有一个无缓存过滤器。这应该在服务器上完成,而不是通过php。@drew:我在我个人资料的分数上给了你一个高分。我相信你不了解主题不是你的错。拥有这个网站有什么意义你希望每个人都问他们已经知道的问题?