4

私の 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 で提供する必要がありますか? メディアの場所がデータベース内のテーブルから取得されると仮定すると、これに対するベスト プラクティスは何ですか?

4

1 に答える 1

7

ソースをプロジェクトに配置せずにローカル ファイルにリンクする正しい方法は何ですか?

クライアントからサーバー上の任意のファイルにアクセスする方法はありません。もしそれが可能であれば、巨大なセキュリティ上の脆弱性が生じることを想像してみてください。

Web アプリケーションの一部であるファイルにのみアクセスできます。どうしても任意のファイルにアクセスする必要がある場合は、ファイルをクライアントにストリーミングするコントローラー アクションを記述する必要があります。

public ActionResult Video()
{
    return File(@"D:\movie\test.mp4", "video/mp4");
}

次に、ソース タグをこのアクションに向けます。

<source src="@Url.Action("Video")" type="video/mp4" />
于 2013-06-25T07:15:29.373 に答える