在我的ASP.NET MVC 4中,我想使用HTML5 <video>
来流式传输视频。视频存储在此位置
D:\movie\test.mp4
。
如何将此位置作为<video>
标记的来源?我试过了:
<source src="@Url.Content(@"D:\movie\test.mp4")" type="video/mp4" />
但没有工作。如果我将文件添加到我的项目中,并按照这样做,<source src="@Url.Content("~/Script/test.mp4")" type="video/mp4" />
它将起作用。
将源链接到本地文件而不必将其放入项目中的正确方法是什么?
此外,媒体文件应该在IIS中提供吗?这是最好的做法,假设媒体的位置是从数据库中的表中提取的?
答案 0 :(得分:7)
将源链接到本地文件的正确方法是什么 而不必把它放在项目中?
无法从客户端访问服务器上的任意文件。想象一下如果可能的话,会产生巨大的安全漏洞。
您只能访问属于Web应用程序的文件。如果您绝对需要访问某些任意文件,那么您需要编写一个控制器操作,将该文件传输到客户端:
public ActionResult Video()
{
return File(@"D:\movie\test.mp4", "video/mp4");
}
然后将源标记指向此操作:
<source src="@Url.Action("Video")" type="video/mp4" />