3

我正在创建一个模块,我需要在其中提供通过浏览器上传和下载任何文件的功能。

我尝试寻找满足我要求的方法。

数据库服务器:Oracle 10 g 框架:Spring & Hibernate 前端:JSP

现在我有两个选择

  1. 将文件导入 oracle(数据类型 blob)数据库并使用 BufferedOutputStream 检索相同的文件

  2. 我将在服务器上创建用于存储所有文件的文件夹。用户将在该位置上传图像。数据库将有一列存储该文件的绝对路径,该路径将在读取该文件时使用

例如,用户上传 imageABC.jpg ,应用程序将上传目录 D:\DIS21\Storage\ 下的该文件(更新后的名称为 unique_id.jpeg),数据库路径列将由 D:\DIS21\Storage\unique_id.jpeg 更新

读取文件时应用程序将读取路径 D:\DIS21\Storage\ 下的文件

我对方法和安全方面有点困惑。有人可以指导我吗..??

4

1 回答 1

1

两种方法都有效。选项 1 的缺点是它会给数据库带来额外的 I/O 压力,但是根据系统上的负载,这可能不是问题。

选项 2 的主要问题是它阻止了水平扩展,即如果您的使用量增加,您将无法添加额外的服务器,而无需将所有文件移动到某种网络文件共享上。同样,这会增加网络和 I/O 开销,但可能是也可能不是问题。

我已经建立了许多将文件存储在数据库中的站点,只要您应用良好的数据设计(主要是您应该将 blob 拆分到它们自己的表中),您应该没问题。

于 2012-04-24T07:43:38.083 回答