Html 如何让浏览器打开本地文件,而不是下载它?

Html 如何让浏览器打开本地文件,而不是下载它?,html,linux,browser,local,Html,Linux,Browser,Local,我正在尝试制作一个html页面,用户可以在其中查看电影列表并开始观看它们。该页面应该在一台特定的机器上本地工作(fileprotocol,或http://localhost如果需要) 问题在于“开始观察他们”部分。如果我以简单的方式()执行,它会询问保存文件的位置 我希望它启动vlc或打开相应目录的文件管理器 我在考虑用一些非标准扩展名创建虚拟文件,将它们与自定义MIME类型和.desktop文件相关联。.desktop文件应该启动相应的电影。但我对它几乎没有经验,它还是要先下载,不是吗 首选浏

我正在尝试制作一个html页面,用户可以在其中查看电影列表并开始观看它们。该页面应该在一台特定的机器上本地工作(
file
protocol,或
http://localhost
如果需要)

问题在于“开始观察他们”部分。如果我以简单的方式(
)执行,它会询问保存文件的位置

我希望它启动
vlc
或打开相应目录的文件管理器

我在考虑用一些非标准扩展名创建虚拟文件,将它们与自定义MIME类型和
.desktop
文件相关联。
.desktop
文件应该启动相应的电影。但我对它几乎没有经验,它还是要先下载,不是吗

首选浏览器是
chrome
firefox
。目标操作系统是
linux


UPD从我想要的判断似乎是不可能的。我上面提到的解决方法可能是,让浏览器下载一个“快捷方式”(包含电影路径),而不是整个电影,并将此自定义文件类型与一个
.desktop
文件关联,该文件将启动相应的电影。此外,使浏览器自动保存下载并自动打开此类型的文件。但不确定我是否要这样做。

您必须将视频嵌入网页:

<video width="x" height="y" controls>
  <source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.<!--error message for outdated browsers-->
</video>

您的浏览器不支持视频标记。

毕竟,我最终还是以“自定义mime类型”的方式完成了。首先,我无法制作
chromium
play
mkv
文件。第二,我相信浏览器不是用来看电影的(尽管你可以)

所以,我要在这里使用铬。转到
设置
。滚动至页面底部。单击显示高级设置…:

滚动直到
下载
部分:

text/x-movie-shortcut=run-movie.desktop

(可选)取消选中
在下载前询问每个文件的保存位置
。创建文件
我的电影。电影快捷方式
,包含:

path/to/my/movie.mkv
创建并打开包含此文件链接的页面。(您很可能必须使用web服务器为页面提供服务,否则
chromium
在确定文件类型为
text/plain
mime类型后,将仅打开文件本身。)单击链接,下载文件,然后(可选)选中
始终打开此类型的文件
菜单项:

现在,
chromium
很可能运行
xdg open path/to/file
来打开文件。至少,如果您使
xdg打开
工作,它也将在
chromium
中工作

首先,您需要安装
mimetype
。如果未安装,
xdg open
使用
file
确定mime类型。我怀疑
文件
是否可以配置为返回自定义mime类型

然后在
/usr/share/mime/globs
中添加一行:

text/x-movie-shortcut:*.movie-shortcut
请注意,
/usr/share/mime/globs
是自动生成的,因此如果需要,请确保使用正确的方法

然后将一行添加到
~/.config/mimeapps.list
[默认应用程序]
部分:

text/x-movie-shortcut=run-movie.desktop
并创建
~/.local/share/applications/run movie.desktop

[Desktop Entry]
Version=1.0
Name=Run Movie
GenericName=Run Movie
Comment=Run Movie
Exec=/home/yuri/bin/run-movie.sh
Icon=vlc
Terminal=false
Type=Application
MimeType=text/x-movie-shortcut
并创建
~/bin/run movie.sh
(您可能可以尝试将该命令放入
.desktop
文件中):


我正在运行Arch Linux,因此您的里程可能会有所不同。这里假设在Windows上至少有一个带有一些编解码器包的VLC集成插件,因此视频立即开始流式传输。你应该看看Linux是否有类似的插件。@mrmut你能告诉我你说的到底是哪一个插件吗?可能是重复的,在SO上找到了许多类似的答案。@Rob你确定你的链接与我的问题有关吗?我不打算编写android应用程序。@x-yuri我点击了错误的链接,但更改了它。尽管如此,你还是应该先搜索你的答案。我使用了“movie.mp4”,因为大多数浏览器都支持mp4。您也可以使用“movie.mkv”,但某些浏览器可能不支持它。Chrome有-我不确定其他浏览器。如果可能的话,我想避免。我认为,在一个独立的应用程序中运行它会带来更好的用户体验。那么你可能需要使用标签来代替。但是用户需要安装能够播放特定视频格式的播放器。