使用 Spring Framework 3 将文件上传到服务器并将文件存储到磁盘

发布于 2024-09-07 19:40:22 字数 202 浏览 2 评论 0原文

我需要将文件上传到服务器,这部分我已经成功完成,但现在我需要知道使用 Spring 将与数据库项相关的文件保存到磁盘的最佳实践是什么,以及如何使用 Spring 实际完成此操作。

我认为这可能是在文件夹中使用数据库表 id 的好方法,例如:

context_path/table_name/id/filename.file

I need to upload files to server and that part I have successfully done, but now I need to know what is best practise to save files that are related to database items to disk with Spring and how that is actually done with Spring.

I thought it could be good way to use database table id in folder for example:

context_path/table_name/id/filename.file

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

栀子花开つ 2024-09-14 19:40:22

有三个选项:

  • 将它们作为 blob 存储在数据库中
  • 将它们存储在 Web 应用程序外部的文件夹中(并且可以在应用程序属性中配置)并保留对数据库中子文件夹+文件名的引用(在数据库中)
  • 将项目推送到一些其他存储,例如内容存储库,并保留对资源的唯一键的引用(在数据库中)

这不仅是 spring 的情况,也是任何应用程序的情况。

There are three options:

  • store them in the database as blobs
  • store them in a folder external to the web application (and configurable in the application properties) and keep reference (in the db) to the subfolder+filename in the database
  • push the items to some other storage, like a content repository, and keep reference (in the db) to the unique key of the resource

This is the case not only with spring, but with any application.

无语# 2024-09-14 19:40:22

您将文件保存在具有数据库中行 ID 名称的目录中的方法非常好。没有什么好方法可以使这个事务真正 100% 安全(文件系统并不真正理解“事务”或“两阶段提交”的概念。

只需确保 context_path 是可配置的,以便数据可以轻松移动。

Your approach to save the file in a directory which has the name of the ID of the row in the database is pretty good. There is no good way to make this really 100% transaction safe (filesystems don't really understand the concept of "transaction" or "two phase commit".

Just make sure that the context_path is configurable so the data can be moved around easily.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文