首页 > 解决方案 > 直接在 tomcat 文件夹中创建图像存储(Java)

问题描述

我在网上和这里搜索,找不到这个相当简单的问题的结论性答案。我正在使用 Java+MySQL+HTML 和 CSS。

我创建了一个 webapp,在这个 webapp 中,用户可以将照片路径上传到数据库。同时,我正在创建一个完全在 tomcat 之外的文件夹,以便将插入的图像复制到那里。该文件夹在我的桌面上,就像我在本地主机上一样,但我想让服务器上的存储不在我的桌面上。

检查 stackoverflow 后,我发现将照片/图像存储在 tomcats webapp/AppName 文件夹中是不好的,因为这会在重新部署时一直覆盖图像,而我不想这样做。

我的 tomcat 文件夹在桌面上。我可以在此处创建一个文件夹来存储此特定应用程序的图像吗:

\Desktop\ApacheTomcat\apache-tomcat-9.0.24\ ?

该文件夹将被称为 TripAppImages,如 \Desktop\ApacheTomcat\apache-tomcat-9.0.24\TripAppImages,除了所有的 tomcats 之外,还有其他文件夹,如 bin、conf 等。我还将使用这个文件夹来显示用户的图像插入,在一个 html 页面中返回给他。

编辑:好的,所以我终于从这里收到了一条消息,如何使用 java 程序在 tomcat 网络服务器中创建文件夹?来自 BalusC 说:

“请注意,您不应将文件存储在扩展的 WAR 文件夹中,否则每次重新部署 webapp 时它们都会丢失。将它们存储在 Tomcat 的 /webapps 文件夹之外的固定路径中。”

我相信这意味着我可以像 \Desktop\ApacheTomcat\apache-tomcat-9.0.24\TripAppImages 这样存储图像。只要它们不在 webapp 文件夹中,就意味着它们不会被覆盖。

标签: javahtmltomcatcontainersstorage

解决方案


您应该避免的唯一文件夹是temp,及其子文件夹webappwork因为是的,这些文件夹可以在部署和清理期间替换或删除其内容,tomcat 中的每个其他文件夹都可以被视为“只是一个文件夹”,如果你不这样做' t 修改它的内容,你可以使用你想要的方式。当然,例如将视频存储在其中是不正常或不标准的,Tomcat\bin但是如果您不触摸那里的原始文件,则可以这样做。

所以从技术上讲,您可以创建一个类似的文件夹\Desktop\ApacheTomcat\apache-tomcat-9.0.24\icecream并将图像放在那里,它不会被部署删除或替换。

如果它只适合您,无论是否是临时production的,只要避开开头提到的三个文件夹就可以了。


推荐阅读