【问题标题】:Download file to tomcat server from URL从 URL 下载文件到 tomcat 服务器
【发布时间】:2013-09-10 13:17:35
【问题描述】:

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

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

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

请帮帮我

【问题讨论】:

    标签: java jsp tomcat servlets


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      • 如果要跨应用程序部署持久保存文件,请在服务器上定义一个目录,运行 servlet 容器(可能是“tomcat”)的用户具有写入权限。

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        相关资源
        最近更新 更多