代码之家  ›  专栏  ›  技术社区  ›  StefanE

将图片存储为文件或存储在web应用程序的数据库中?

  •  116
  • StefanE  · 技术社区  · 15 年前

    我应该将图片保存在数据库还是文件系统中?不管答案如何,我更感兴趣的是为什么选择一种特定的方式。

    10 回复  |  直到 3 年前
        1
  •  185
  •   Andy    14 年前

    为什么?因为

    1. 您可以将图片作为静态文件提供。
    2. 获取图片不需要数据库访问或应用程序代码。
    3. 可以从不同的服务器提供映像以提高性能。
    4. 数据库最终将其数据存储在文件系统中。
    5. 当图像存储在文件系统上时,可以很容易地进行缓存。
        2
  •  12
  •   devio    15 年前

    将文件存储在数据库中的优点显然是,如果删除记录,硬盘上不会出现未引用的文件,因为数据库(=元数据)和硬盘(=文件存储)之间的同步不是内置的,必须手动编程。

        3
  •  10
  •   Matt Darby    15 年前

        4
  •  6
  •   sparklewhiskers    15 年前

    最好将文件存储为文件。不同的数据库处理Blob数据的方式不同,因此如果必须迁移后端,可能会遇到麻烦。

    为进口货物提供服务时<img src=指向服务器上已存在的文件可能比从数据库字段创建临时文件并指向<img标签。

    http://databases.aspfaq.com/database/should-i-store-images-in-the-database-or-the-filesystem.html

        5
  •  6
  •   chburd    15 年前

    • 数据完整性:没有未引用的文件,数据库中没有未关联文件的路径
    • 数据一致性:进行数据库转储,仅此而已。否“O我忘了标记此数据目录。”
        6
  •  4
  •   Adam Hawes    15 年前

    将图像存储在磁盘上可以很容易地卸载到备用存储,使图像成为静态元素,这样您就不必在web应用程序中乱用HTTP头来缓存图像。缺点是,如果你将应用程序移动到另一台服务器,你需要记住也要移动图像;容易忘记的事情。

        7
  •  3
  •   Dillie-O    15 年前

        8
  •  0
  •   MotoWilliams    15 年前

    只是在目前已经很好的答案上再加上一些。您仍然可以从两个web级别获得缓存的好处 大概

        9
  •  -1
  •   Lord Nighton    9 年前
    1. 下面是一个分步示例(一般方法、Spring实现、, Eclipse )将图像存储在文件系统中,并将其元数据保存在数据库中-- http://www.devmanuals.com/tutorials/java/spring/spring3/mvc/Spring3MVCImageUpload.html
    2. 这里也有一个例子-- http://www.journaldev.com/2573/spring-mvc-file-upload-example-tutorial-single-and-multiple-files
    3. 您还可以调查此项目的代码库-- https://github.com/jdmr/fileUpload this 控制器。