一尘不染

上传文件的最佳位置

tomcat

这个问题已经在这里有了答案

在Servlet应用程序中保存上传文件的推荐方法 (2个答案)

4年前关闭。

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

1)可以在tomcat的根目录中创建一个文件夹,然后可以将上传文件放在该目录中,以后可以选择该文件进行导入过程。

File dir = new File(System.getProperty("catalina.base"), "uploads");

这是一个不错的选择吗,并且上面的代码在所有环境中均能正常工作

2)我可以在应用程序下创建一个uploads文件夹,并可以使用以下代码访问它进行文件上传,然后再导入

ServletActionContext.getServletContext().getRealPath("uploads");

您需要提出宝贵的建议,我唯一需要做的工作就是上传文件,并为已上传的文件运行导入过程,一旦导入成功,请将文件从此文件夹中删除到其他已处理的文件等。


阅读 457

收藏
2020-06-16

共1个答案

一尘不染

File dir = new File(System.getProperty("catalina.base"), "uploads");

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


ServletActionContext.getServletContext().getRealPath("uploads");

这不是永久存储的好选择。每当您重新部署WAR时,一切都会丢失。

而是将其存储在您的Web应用程序外部的已知且固定的路径中,并像<Context>在Tomcat中一样添加其路径,/conf/server.xml以便它也可以在线使用。

如果/conf/server.xml由于某种原因不想更改Tomcat
,则需要创建一个servlet,该servlet使用来从磁盘读取文件FileInputStream并将其写入OutputStream响应的。您可以在此处找到一个基本示例。

2020-06-16