我正在使用 JSP 和 servlet 构建应用程序。我正在尝试在其中构建文件上传功能。我想确保将我在本地创建的文件夹结构传输到 Apache Web 服务器。有什么方法可以实现这一目标?我有一个表单,我在其中使用输入文件控件提供特定文件夹的路径。当我提交表单时,应在 Web 服务器上创建表单中所选文件夹下的任何文件和文件夹层次结构。如果文件夹包含任何文件,则文件应自动传输到服务器。有可能实现这样的功能吗?
1 回答
上传文件时,您通常只会获得文件名和文件内容。您通常也不会获得整个客户端磁盘文件系统路径。只有糟糕的 MSIE 网络浏览器会由于安全错误而错误地发送此信息,但您应该将其关闭/
或\
仅以文件名结束,或者如果您使用的是 Apache Commons FileUpload,则由FilenameUtils#getName()
.
至于服务器端的文件夹结构,只需将上传的文件以唯一的名称存储在固定文件夹中即可。不要不必要地创建其他文件夹,除非该文件夹应该识别登录用户或其他东西,当然。您可以使用File#createTempFile()
基于文件名前缀和文件名后缀(扩展名)来创建唯一文件名,以避免偶然覆盖相同名称的上传文件。
至于服务器端上传文件夹位置,请确保它不在服务器文件夹结构中的 webapp 部署文件夹中。每次重新部署 webapp 时,这都会丢失,原因很简单,上传后新添加/更改的文件不包含在要部署的 WAR 中。
至于提供文件,只需将上传文件夹位置作为另一个虚拟主机添加到服务器配置中。不清楚您对“Apache Web 服务器”的确切含义是什么,因为 Apache 是一家构建许多软件产品的大型软件公司。你的意思是 Apache HTTPD 吗?阿帕奇 Tomcat?阿帕奇汤姆EE?阿帕奇杰罗尼莫?等等。当您在 JSP/Servlet 上下文中讨论时,我将假设 Apache Tomcat。然后前往这个答案:我如何在 java webapp 中的服务器上保存和检索图像。