【问题标题】:How to map filesystem path to http url in spring如何在春季将文件系统路径映射到http url
【发布时间】:2015-02-14 02:05:53
【问题描述】:

我正在开发一个允许用户上传文件的 spring web mvc 项目。我将这些上传的文件保存在应用程序上下文之外,以便它们在部署中持续存在。保存文件工作正常。我想知道将文件系统路径转换为 ​​HTTP url 的最佳方法,以便它可以保存在数据库中,也可以用于 HTML 资源等。

提前致谢。

【问题讨论】:

  • 您是想将文件从文件系统移动到数据库字段,然后将其作为资源提供,还是像访问静态资源一样访问文件系统中的文件?如果是第二个选项,请检查:wordgraphs.com/post/1751/…
  • 感谢您的回复。这是第二个选项,我确实检查了这个链接。我不明白的是在我的 html 标签中,我需要放置一个相对 url 还是一个完全限定的 url。此外,如果我决定将这些文件存储在不同的服务器上,我将需要一个完全限定的 url。这种情况如何处理?
  • 另外,如果我将文件存储在同一台服务器上,我应该将相对路径还是完全限定路径存储在数据库中?
  • 是的,谢谢。我用同样的方法让它工作。
  • 如果您将其添加为答案,我会标记它。

标签: spring spring-mvc


【解决方案1】:

当您想使用 spring mvc 访问文件系统中的文件(如静态资源)时,答案(取自 here)是为静态资源提供服务,并在您的 servlet 上下文中添加一个条目:

例子:

<mvc:resources mapping="/images/**" location="file:/absolute/path/to/the/resource/folder/" />

在这种情况下,您仅使用一种资源将所有文件存储在同一服务器的同一路径中,那么您只能将文件名存储在数据库中。

在您的 html 标记中,您需要使用相对 url(注意您的上下文,这样您就可以访问您的文件,如 http://yourhost:port/context/resource/yourfile)。

如果您想将文件存储在不同的服务器中,那么您应该添加另一个资源源(但它必须作为文件系统路径提供给其他服务器),因此在这种情况下,将文件存储在数据库类似“resourcename/filename”的值。

【讨论】:

  • Spring boot 项目我应该怎么做,因为我们没有可以为 Spring mvc 项目找到的 xml 文件?
猜你喜欢
  • 2015-08-20
  • 2012-11-17
  • 1970-01-01
  • 2022-09-23
  • 2017-02-19
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多