asp.net - 如何组织和操作文件系统中的图片?

标签 asp.net image filesystems

虽然看起来可能不是这样,但关于这个主题有一些问题。 我不是问我是否应该使用数据库或文件系统(它是文件系统),而是问在与 ASP.NET 应用程序一起使用的文件系统中组织图片的最佳方式是什么? 我说的是几万甚至几十万张图片。

稍微阐述一下问题。

  • 存储库应位于何处,在 IIS 或应用程序 VD 中创建另一个 VD,还是 IIS 之外的某个位置?
  • 如何组织文件路径,将它们全部放在一个文件夹中或创建子文件夹。如果是这样,如何命名所有这些文件夹?
  • 如何处理同一张图片的多种尺寸?在哪里可以找到它们?
  • 如何将文件夹和图像与数据库同步?
  • 您还想到了什么,并且您认为这很重要..

我自己已经做了一些事情,但我想问是否有人有这方面的经验。也许按照你的方式可以做得更好。

我这样写

  • 我将图片存储在 IIS 文件夹中,因为将它们存储在 iis 之外,由于路径的原因,它们无法在 Web 中使用。 Web 中不能使用文件路径,它必须是虚拟文件路径。

    http://images/1.jpg 而不是 C:\images\1.jpg

  • 在根目录中,我有每个图片尺寸的子文件夹

    根- +400x300 +600x400 +1024x768

  • 根据数据库中的 ID 命名图像。如果数据库中的ImageID是45678909,则图片的名称是45678909.jpg,它的位置是

    VD\图像\400x300\45\67\89\45678909.jpg

    VD\images\600x400\45\67\89\45678909.jpg

我将图片名称切成两两,并创建子文件夹。重点是文件夹中的文件不要超过 100 个。这是好主意还是愚蠢的主意?你会如何组织这个?对于个人来说,这个拥有大量文件夹的组织并不容易使用。

  • 我保存在数据库表中的图像名称及其相对路径,以及描述和插入时间等。路径:45\67\89\45678909.jpg

有什么建议或改进吗?

谢谢:)

最佳答案

您的最后一个解决方案对我来说似乎是一个非常好的解决方案。如果一个文件夹中的文件太多(例如超过 1000 个),文件访问速度可能会变慢,因此坚持 100 个比较好。

在同步方面,您只需要一个定期运行的脚本来查询数据库中应该存在的所有图像,并删除多余的图像。如果您的磁盘空间并不紧张,那么您不需要这个。

有时您可能希望将图像放在另一台服务器上以获得更好的可扩展性。我唯一可以做的就是为您的图像设置一个子域,例如images.yourdomain.com。即使您将其指向同一服务器,如果需要,也可以很容易地将图像转移到更快的文件服务器。

关于asp.net - 如何组织和操作文件系统中的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3573568/

相关文章:

c# - 在 asp.net 中使用 onclick 方法传递变量

java - JavaFX 中的快照过度饱和

uWSGI下的Python创建权限错误的文件和目录

c++ - 为什么路径比较在最新的文件系统草案(C++)中区分大小写?

c# - MVC3 将模型传递给 Controller ​​ - 接收空值

带Bootstrap编辑器的Asp.net MVC5

javascript - 使用 javascript 更改标签文本并从后面的代码中读取它

javascript - Node.js:读取被覆盖的图片,仅引用初始图像

Javascript 监听图像加载调用并在图像加载之前更改 src

PHP 获取文件行数并将文件指针移动到指定行的方法?