Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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_Web Applications_Upload_Thumbnails - Fatal编程技术网

Php 我应该在每次请求时动态生成每个缩略图,还是将它们存储在图像上载中?

Php 我应该在每次请求时动态生成每个缩略图,还是将它们存储在图像上载中?,php,image,web-applications,upload,thumbnails,Php,Image,Web Applications,Upload,Thumbnails,问题-我想在我的网站上设置一个图像上传功能。但我想同时显示原始图像和图像的小缩略图 选择哪种方式更好?上传图像时,在目录中创建单独的图像(缩略图),还是每次请求图像时,通过以固定比例缩小其高度和宽度来显示较小的版本 我目前是如何操作的-后一个对我来说更好,因为它不会占用磁盘太大的空间,但它必须一次又一次地调整图像的大小。你认为哪一个更好 这是web应用程序的一般问题,没有特定的语言 你知道facebook或谷歌是怎么做到的吗 问题-我的问题是如何生成缩略图并在网站上显示它们-通过创建尺寸较小的原

问题-我想在我的网站上设置一个图像上传功能。但我想同时显示原始图像和图像的小缩略图

选择哪种方式更好?上传图像时,在目录中创建单独的图像(缩略图),还是每次请求图像时,通过以固定比例缩小其高度和宽度来显示较小的版本

我目前是如何操作的-后一个对我来说更好,因为它不会占用磁盘太大的空间,但它必须一次又一次地调整图像的大小。你认为哪一个更好

这是web应用程序的一般问题,没有特定的语言

你知道facebook或谷歌是怎么做到的吗


问题-我的问题是如何生成缩略图并在网站上显示它们-通过创建尺寸较小的原始图像副本或每次请求时动态生成缩略图。

上传时创建缩略图几乎总是更好的选择。如果存在存储问题,您可以在请求时转换它们,然后将结果缓存到内存存储中。如果在缓存过期之前再次请求,则不需要转换


存储通常非常便宜,所以我可能不会考虑额外的复杂性。

只需创建一个缩略图版本并保存到磁盘。硬盘空间非常便宜。几TB的费用为70英镑。

创建缩略图是一个更好的选择,而且不会占用太多磁盘空间。您的客户端在打开页面时也会加载较小的大小。根据请求转换图像将花费更多时间来加载页面;)

如果你看看大多数具有内置功能的CMS,它们几乎总是在上传时创建图像的缩略图,并将其存储在服务器上

这可以追溯到一句古老的谚语“做谷歌所做的”,但有了CMS,“更好”取决于你设定的标准

对于大多数应用程序来说,磁盘空间不是问题——如果存储缩略图是一个问题,那么存储原始图片肯定是一个巨大的问题——一张像样的数码相机照片将达到很多兆字节,而缩略图不应超过50K

带宽和性能(如客户所认为的)通常是更大的问题。如果有很多人浏览图像缩略图库,那么提供50Kb的缩略图将比提供多兆字节的高分辨率图像快得多(带宽也更便宜)

此外,通过在像
这样的URL上提供缩略图并设置适当的缓存头,您应该获得大量的下游缓存—如果您将图像作为
提供,则这种情况不太可能发生,因为缓存对查询字符串的处理相当保守

我曾经在一个网站上工作,该网站管理着数十万张产品图片;我们设置为自动创建缩略图。根据您的设置,在第一次请求缩略图时执行此操作可能有意义,而不是在上载文件时执行此操作,因为转换可能需要大量资源,并且在上载时执行此操作将花费比我们希望等待的更长的时间。现代硬件可能使这成为一个问题


还有一个关于保持缩略图与原件同步的问题——如果用户上传新图像,你必须确保更新缩略图;如果删除了原件,还必须删除缩略图

便宜是相对于你所处的位置而言的。它比处理能力/内存便宜得多。你还可以注意到,因为你是在上传时创建缩略图的,所以你可以决定图像格式(jpg)和大小。缩略图应该非常小,所以我猜它们会占用磁盘上的一些KB,与原始图像大小相比,几乎什么都没有。我认为这不应该是一个问题。@datasage——Microcentre的100美元(根据您的个人资料,这与您很接近),2TB(63英镑)。比如说30K——你可以在里面买到很多2TB@EdHeal2TB的7500卢比:(.我将转换图像服务器端的大小,这样客户端将收到一个小尺寸的图像。@SandyLee_user53167…与更高的处理能力/内存相比,这是否昂贵?代码看起来更整洁。
看起来比
更干净。
不要忘记在上载时存储图像缩略图版本的额外行…知道吗facebook是如何做到的?@SandyLee_user53167-上传图像时只需创建缩略图。创建过程可能需要一两秒钟。顺便问一下-为什么
thumbnail.php?image=image/foobar.jpg
看起来更整洁?如果这样,请查看Apache重写规则。“大多数CMS”…你的意思是wordpress和drupal?只需给原始+缩略图一个唯一的数字,就可以不再使用。用户上传一个新图像-该图像获得一个新的数字-缓存现在只适用于新图像,很简单。