【发布时间】:2021-08-24 12:21:38
【问题描述】:
让我们直奔主题。
我将我的旧 VHS/DVD 内容放在我的硬盘上。它位于/mnt/d/Movies,我正在使用 Windows 并拥有 WSL(windows 子系统 linux)。 WSL 是托管网络服务器的地方,因为我想通过我的 LAN 将所有这些电影提供给任何想要观看它们的人(仅限 LAN)。制作了一个动态页面来选择电影并加载它。
movieDir Location: /mnt/d/Movies/Speed.2.Cruise.Control-1997/Speed.2.Cruise.Control-1997.mkv
当我尝试以下操作时
$lanSite->movieDir = 'https://localhost/mnt/d/Movies/'
<video>
<source style="height:600px; width:480px;" src="<?= $lanSite->movieDir . DIRECTORY_SEPARATOR . $movieName . "-" . $movieYear . $movieFile; ?>" type="video/mp4">
</video>
注意:视频文件被编码为 mkv / mp4 取决于哪个最适合存储目的。
使用的网址:/mnt/d/Movies/Speed 2 Cruise Control-1997/Speed.2.Cruise.Control-1997.mkv
试过上面似乎没有加载任何东西。当我尝试检查 Dir 和 File 是否存在时,它们似乎存在但未在 localhost 页面中加载。
然后我尝试使用 apache .htaccess 重定向 /mnt/d/Movies 文件夹
.htaccess:RewriteRule ^movie-file/(.*)$ movie_details.php?movie=$1
上述方法不起作用,实际上我认为我以不同的方法最终在同一个地方。
然后我意识到它在 rootDir 之外,做了一些谷歌搜索。最终结果是由于目录混淆而重置了我的 WSL。
任何人都可能知道可能是什么问题,如果我在服务器中加载文件没问题,虽然服务器有 512GB 存储空间并且我迄今为止编码的电影为 650GB,但从驱动器本身外部使用它们是我的唯一的选择。
我尝试过的随机组合:
https://localhost/mnt/d/Movies/Speed 2 Cruise Control-1997/Speed.2.Cruise.Control-1997.mkv
../../mnt/d/Movies/Speed 2 Cruise Control-1997/Speed.2.Cruise.Control-1997.mkv
//mnt/d/Movies/Speed 2 Cruise Control-1997/Speed.2.Cruise.Control-1997.mkv
D:\Movies\Speed 2 Cruise Control-1997\Speed.2.Cruise.Control-1997.mkv
file:///D:\Movies\Speed 2 Cruise Control-1997\Speed.2.Cruise.Control-1997.mkv
我尝试过的所有组合都失败了。 是的,我已经尝试过 .mp4 并且它具有相同的结果 --> 找到文件夹 --> 找到文件 --> 无法看到播放器或播放
【问题讨论】:
-
首先,您需要具备访问本地硬盘的能力。该链接解释了你是如何做到的。接下来(最有可能)您会遇到防火墙、读取权限错误。 HTML 文件“不可能”简单地访问外部硬盘驱动器。这就是为什么您首先拥有网络服务器的全部原因。
-
为什么您认为可以通过网络服务器访问文档根目录之外的文件?这也将允许下载您的私人文件,例如私钥。将文件移动到您的文档根目录中。
-
您可以访问您的驱动器,但不能访问在其他设备上运行的 HTML 文件本身。如果允许 HTML 文件(选择上传文件的例外情况非常有限)访问外部驱动器,那么这将导致最大的安全问题。因此,除非驱动器将成为网络服务器本身的一部分,否则假定这是不可能的。
-
您可以让您的网络服务器遵循符号链接,并将您安装的驱动器符号链接到文档根目录。在您喜欢的搜索引擎上搜索“follow symlinks
”。
标签: html