Java 上传文件的最佳位置

Java 上传文件的最佳位置,java,tomcat,servlets,Java,Tomcat,Servlets,在一些导入过程中,我需要首先将文件上载到服务器上的某个位置,然后从该位置拾取文件,将其导入到系统中。 我只是想知道什么地方可能是最好的存储上传的文件。我别无选择 1) 您可以在tomcat的根目录中创建一个文件夹,然后将上载文件放在那里,稍后可以选择用于导入过程的文件 File dir = new File(System.getProperty("catalina.base"), "uploads"); 这是一个很好的选择,并且上面的代码是否在所有环境中都能正常工作 2) 我可以在我的应用程序

在一些导入过程中,我需要首先将文件上载到服务器上的某个位置,然后从该位置拾取文件,将其导入到系统中。 我只是想知道什么地方可能是最好的存储上传的文件。我别无选择

1) 您可以在tomcat的根目录中创建一个文件夹,然后将上载文件放在那里,稍后可以选择用于导入过程的文件

File dir = new File(System.getProperty("catalina.base"), "uploads");
这是一个很好的选择,并且上面的代码是否在所有环境中都能正常工作

2) 我可以在我的应用程序下创建一个uploads文件夹,并可以使用以下代码访问该文件夹以进行文件上载和稍后的导入

ServletActionContext.getServletContext().getRealPath("uploads");
需要您的宝贵建议。我需要做的唯一工作是上载文件并运行上载文件的导入过程,导入成功后,将文件从该文件夹删除到其他类似已处理文件等

它在缺少
catalina.base
属性的环境中不起作用。因此,您需要在webapp的安装手册中正确记录该属性,以确保该属性已在相关服务器上设置,或者寻找替代方法


作为永久存储,这不是一个好的选择。只要你重新部署战争,一切都会失去

而是将其存储在webapp外部的已知固定路径中,并将其路径添加为Tomcat的
/conf/server.xml
中的
,以便它也可以在线使用

如果您不想出于某种原因更改Tomcat的
/conf/server.xml
,那么您需要创建一个servlet,它使用
FileInputStream
从磁盘读取文件,并将其写入响应的
OutputStream
。你可以找到一个基本的例子

相关问题:

@BalucS如果我按照您的建议将上下文放在server.xml中,我将如何在java应用程序中访问此路径,因为最后我需要使用java IO访问此文件,以便将其传递到系统的其他部分,您可以在代码中硬编码完整路径,您可以在
web.xml
中配置完整路径并从servletcontext获取它,您可以硬编码/配置部分路径
uploads
并使用
getRealPath()
显示它,等等@BalusC这适用于tomcat服务器。如果我想在glassfish3服务器中实现它,我应该做什么更改。
File dir = new File(System.getProperty("catalina.base"), "uploads");
ServletActionContext.getServletContext().getRealPath("uploads");