我该如何存储我网站的图像?

时间:2013-06-15 08:54:02

标签: html image

将图像文件存储在数据库中的正确方法是什么。 我正在使用文件路径来存储图像。

但问题出在这里。我必须为我的网站显示3个不同大小的一个图像。一个用作缩略图,第二个用于290px * 240px,第三个用于全尺寸(约500px * 500px)。由于使用HTML img元素缩小图像并不合适,那么它的解决方案应该是什么呢?

目前,我正在做的是为一件事存储3个不同尺寸的图像。还有更好的办法吗?

3 个答案:

答案 0 :(得分:5)

存储同一图像的多个版本没有错。

理想情况下,您需要更多 - 视网膜屏幕的@ 2x。

您可以使用服务器端脚本动态生成较小的脚本,但根据流量级别,这可能是一个坏主意。

你真的在交换存储空间和速度以获得更高的CPU和RAM使用率来动态生成它们 - 这取决于你的情况可能是一个很好的权衡,或者可能不是。

答案 1 :(得分:3)

坦率地说,在数据库中存储图像的正确方法是不将它们存储在数据库中。将它们存储在文件系统中,并将数据库限制在路径中。

在一天结束时,你谈论的是存储空间。这是真正的问题。如果您以不同的分辨率存储同一文件的多个副本,则只需存储该文件的单个副本将占用更多空间。

另一方面,如果您只保留文件的一个副本并动态缩放,则不需要存储空间,但确实需要更多处理能力。

正如您在问题中所述,每次发送全尺寸图像在带宽方面都是昂贵的。

这就是权衡;服务器上的存储空间与处理器工作量和带宽成本。

简单的事实是,这三件事中最便宜的是存储空间。因此,您应该将多个文件副本存储在服务器上。

这也是一种能够为您提供最佳性能的解决方案,在许多方面,它比直接成本更重要。

在存储文件路径方面,我的建议是为扩展版本提供可预测的名称,其标准前缀或后缀与原始文件相比较。这意味着您只需要在数据库上拥有单个文件名;您只需为已请求的图像的相关版本添加前缀即可。

答案 2 :(得分:1)

同意rick,您可以根据业务需求存储多个大小的图片。您应该将Image存储在服务器上的文件夹中,并将其位置存储在数据库中。在文件夹中创建层次结构并在文件夹中存储低分辨率图像,这样您始终只能使用一个地址来引用它们。 您可以在web.config

中执行此操作
<add key="WebResources" value="~/Assets/WebResources/" />
<add key="ImageRoot" value="Images\Web" />

制作.233240和.540540文件夹,并在其中存储具有相同名称的图片,以便您轻松访问它们。