我正在.NET中编写一个上传函数,用于在用户配置文件上显示图像.我在两种不同的方式中做出选择,并且想就有关利弊提出建议和意见.
将图像直接存储在文件系统上
将图像存储在数据库中
到目前为止,我一直是第一个选择 - 在用户名之后命名图像,因为每个用户只能有一个演示图像.然后,如果用户有图像,我会在指定的路径中进行检查,如果没有显示默认的"无图像" - 图像.
我喜欢的另一件事是它节省了数据库中的空间 - 如果没有额外的二进制负载,数据库将非常繁重.
我确信还有其他方面我没想过,所以我想听听你对此的看法.如果有人对这个问题有完全不同的解决方案,请分享一下!
我无法决定应该遵循哪一个.你们能提出一些意见吗?我应该将我的图像存储在文件系统还是数据库中?(我想阻止别人偷我的照片)
当您回答这个问题时,请包括安全性,性能等的比较.
谢谢.
完全重复: 用户映像:数据库还是文件系统存储?
完全重复: 在数据库中存储图像:是或不是?
完全重复: 我应该将我的图像存储在数据库还是文件夹中?
确切重复: 您是否将二进制数据存储在数据库或文件夹中?
完全重复:将 图片存储为Web应用程序的文件或数据库?
确切重复: 存储少量图像:blob还是fs?
精确复制: 将图像存储在文件系统或数据库中?
首先,我注意到有很多关于此的问题,批次标记为重复.
我终于来到了这一个.
对于这个问题的公认答案虽然部分地解决了我的问题,但它并没有回答所有问题.
我的问题是,用户上传图片.我将路径存储在数据库中,将映像文件存储在文件系统中.但是,我制作了3张图片(大,中,小).总而言之,我有4张图片 - 原创,大,中,小.
我应该在数据库中存储所有4个路径,就像这样
ID | original | large | medium | small |
----+--------------------+-----------------+-----------------+----------------+
1 | /path/to/original | /path/to/large/ | /path/to/medium | /path/to/small |
Run Code Online (Sandbox Code Playgroud)
或者只是存储原始的路径,并给予其他3的命名惯例,像这样:
car.jpg, car.jpg, large-car.jpg, medium-car.jpg, small-car.jpg?
我觉得这种方式对数据库来说不那么沉重,如果以后我想添加另一个大小(即超小)我不需要修改数据库.
背景资料:
该应用程序是使用 SQLite 作为后端的 .NET 4/C# Windows 窗体。只有一个用户使用该数据库,并且绝不通过网络进行交互。
我的软件需要保存与项目记录关联的图像。我应该将图像作为二进制信息保存在数据库本身中吗?或者我应该将图片的路径保存在文件系统上并使用它来检索它。
另存为路径时我担心的是有人可能会更改图片的文件名,这基本上会破坏我的应用程序的使用。
有人可以给一些建议吗?通过网络互动。
我有一堆PDF文档,我需要在我正在制作的网站中使用.我也需要能够搜索PDF.那么将这些文件保存到数据库还是文件夹更好?此外,在这两种情况下,我如何搜索它们?我将基本上搜索他们1或2个单词并返回包含结果的PDF列表.做这一切的最好和最简单的方法是什么?此外,PDF文件每年最多更换一次,有时甚至更少,我不需要保留修订历史记录.