#问题描述
浏览器无法使用本地磁盘文件,如F:\\Video\\Test.mp4
,提示错误Not allowed to load local resource
#场景描述
将本地磁盘中的视频通过Python的Tornado框架,在浏览器中播放,前端播放器使用的是Plyr.js,代码如下:
<video id="player" playsinline controls>
<source src="F:\\Video\\Test.mp4" type="video/mp4" />
</video>
其中F:\\Video\\Test.mp4
为本地磁盘文件,但是无法播放,提示Not allowed to load local resource
.
在文章
中,提到可以用虚拟路径来解决,但是我找了许久,未找到Python、Tornado中映射虚拟路径的方法。
有没有什么方法可以解决这个问题?
在Tornado框架中,可以通过设置静态文件的路径来实现访问本地磁盘文件。具体步骤如下:
在Tornado的应用程序中添加以下代码,指定静态文件的路径:
import os
from tornado.web import Application, RequestHandler, StaticFileHandler
app = Application([
(r"/static/(.*)", StaticFileHandler, {"path": os.path.join(os.getcwd(), "static")})
])
其中,os.getcwd()用于获取当前工作目录,"static"表示静态文件所在目录的名称。
在浏览器中,将视频文件的src路径设置为"/static/Video/Test.mp4",其中"Video"是静态文件目录下的子目录。
<video id="player" playsinline controls>
<source src="/static/Video/Test.mp4" type="video/mp4" />
</video>
将视频文件拷贝到静态文件目录下的子目录中。例如,在上述示例中,将视频文件Test.mp4拷贝到静态文件目录下的Video子目录中。
通过以上步骤,就可以在浏览器中访问本地磁盘文件了。需要注意的是,Tornado框架只能访问应用程序指定的静态文件目录下的文件,无法访问其他位置的文件。