0

我正在开发一个使用 java servlet 和 JSP 构建的项目。该系统部署在一个tomcat服务器上。在此,我需要从 URL 下载某些 .wav 文件。所以我写了一个代码来下载文件。但问题是在本地机器上我可以将文件路径作为我的“C:/”,并且它成功下载,但是当我将它部署在服务器上时,我不知道该提供什么作为路径。我尝试获取上下文路径并将其添加到文件路径,但它没有下载。我也看不到日志上的任何错误。

此外,由于部署了 .war 文件,我不知道如何访问服务器上的文件夹(甚至不知道如何获取它们的正确路径)。

我进行了很多搜索,但所有解决方案都显示了如何将文件从 URL 下载到本地计算机,但没有显示如何将文件从 URL 下载到 Tomcat 服务器。

请帮帮我

4

2 回答 2

1

尝试在服务器中创建一个环境变量,它将保存文件的根路径。System.getenv在您的代码中,使用并使用它作为路径的根访问环境变量 。

也可以在战争中添加文件并直接访问它们(例如http://www.example.com/mywavfiles.wav,但这会增加战争的规模,通常不是你想要的,正如我所理解的那样。

于 2013-09-10T13:27:39.800 回答
0
  • 如果要跨应用程序部署保存文件,请在服务器上定义一个目录,运行 servlet 容器(可能是“tomcat”)的用户具有写访问权限。

  • 您不应该将文件下载到“上下文路径”中,因为这被认为是 Web 应用程序的只读资源,仅包含 java 类和其他(编译的)资源。(你可能不能,因为文件系统权限拒绝你)

  • 如果是出于临时目的,请使用返回的值System.getProperty("java.io.tmpdir")作为创建临时文件的基本目录。

  • 如果需要从目录名和文件名构造路径,不要手动放置斜杠和反斜杠,而是使用System.getproperty("file.separator")

  • 当发现自己创建了许多低级函数时,请考虑使用例如Commons IO而不是重新发明轮子。

于 2013-09-10T14:34:41.163 回答