从URL下载文件到tomcat服务器

时间:2013-09-10 13:17:35

标签: java jsp tomcat servlets

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

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

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

请帮帮我

2 个答案:

答案 0 :(得分:1)

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

还有可能在战争中添加文件并直接访问它们(例如http://www.example.com/mywavfiles.wav,但这会增加你的战争规模,通常不是你理解的东西。

答案 1 :(得分:0)

  • 如果要跨应用程序部署持久保存文件,请在服务器上定义运行servlet容器的用户(可能是“tomcat”)具有写访问权限的目录。

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

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

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

  • 当发现自己创建了大量低级功能时,请考虑使用例如Commons IO而不是重新发明轮子。