gpt4 book ai didi

java - 在Servlet中定位网盘中的文件

转载 作者:行者123 更新时间:2023-11-29 03:57:57 26 4
gpt4 key购买 nike

我创建 ImageServlet 来引用我的 Web 应用程序范围之外的视频。

我所有视频的位置都在可以从 Intranet 中的任何计算机访问的 Intranet 位置:

String path = "\\myip\storage\ogg\VX-276.ogg"

在我的应用程序中,当我将其写为 URL - 它无法显示!

如果我尝试用 chrome 打开它,它会自动将其更改为 file://myip/storage/ogg/VX-276.ogg 并显示该文件。

我尝试这样做:file:////odelyay_test64/storage/ogg/同样,但 Java 将字符串转换为:file:\myip\storage\ogg\VX-276.ogg 不存在!

正确的引用方式是什么?

已编辑

我创建了一个小测试:

String path = "file://myip/storage/ogg/VX-276.ogg";
File file = new File(path);
if (file.exists())
System.out.println("exists");
else {
System.out.println("missing" + file.getPath());
}

我得到:

missing file:\myip\storage\ogg\VX-276.ogg

正如您所看到的,斜线正在被切换

最佳答案

根据您的 previous question ,您正在引用 HTML 中的资源 <video>标签。 HTML 源代码中的所有 URL 必须http:// URL(或至少与 http:// URL 相关)。大多数浏览器拒绝从 file:// 加载资源http:// 请求 HTML 页面本身时的 URL .您只需要让 URL 指向 servlet。如果 servlet 的 doGet()方法被命中,则 URL 没问题,您不应该更改它。

您的具体问题在于您如何在 servlet 中打开和读取所需文件。您需要确保 pathFile file = new File(path)在打开 FileInputStream 之前指向一个有效位置在上面。

String path = "file://myip/storage/ogg/VX-276.ogg";
File file = new File(path);
// ...

如果 servlet 代码写得很好,它不会抑制/吞噬异常并且您已经阅读了服务器日志,那么您应该已经看到了 IOException例如FileNotFoundException每当读取文件失败时,服务器日志中都会显示一条 self 解释的消息。去阅读服务器日志。


更新 根据评论,事实证明您使用的是 Windows,因此 file://如果不将其映射到驱动器盘符,网络磁盘上的文件将无法用于 Java。你需要映射//myip首先在驱动器号上,例如 X: .

String path = "X:/storage/ogg/VX-276.ogg";
File file = new File(path);
// ...

关于java - 在Servlet中定位网盘中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com