Java 上传文件的最佳位置
在一些导入过程中,我需要首先将文件上载到服务器上的某个位置,然后从该位置拾取文件,将其导入到系统中。 我只是想知道什么地方可能是最好的存储上传的文件。我别无选择 1) 您可以在tomcat的根目录中创建一个文件夹,然后将上载文件放在那里,稍后可以选择用于导入过程的文件Java 上传文件的最佳位置,java,tomcat,servlets,Java,Tomcat,Servlets,在一些导入过程中,我需要首先将文件上载到服务器上的某个位置,然后从该位置拾取文件,将其导入到系统中。 我只是想知道什么地方可能是最好的存储上传的文件。我别无选择 1) 您可以在tomcat的根目录中创建一个文件夹,然后将上载文件放在那里,稍后可以选择用于导入过程的文件 File dir = new File(System.getProperty("catalina.base"), "uploads"); 这是一个很好的选择,并且上面的代码是否在所有环境中都能正常工作 2) 我可以在我的应用程序
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
。你可以找到一个基本的例子
相关问题:
web.xml
中配置完整路径并从servletcontext获取它,您可以硬编码/配置部分路径uploads
并使用getRealPath()
显示它,等等@BalusC这适用于tomcat服务器。如果我想在glassfish3服务器中实现它,我应该做什么更改。
File dir = new File(System.getProperty("catalina.base"), "uploads");
ServletActionContext.getServletContext().getRealPath("uploads");