asp.net MVC - 大小超过 10MB 的视频无法播放
本文关键字:的视频 10MB 播放 MVC net asp | 更新日期: 2023-09-27 18:35:06
<httpRuntime
executionTimeout="3600"
maxRequestLength="102400"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>
如果我在 web.config 文件中使用上述代码,我可以上传大尺寸视频,但视频根本无法播放。如果大小小于 8 MB,则播放视频。
我已经尝试了以下代码。
<video width="100%" height="100%" controls autoplay>
<source src="~/@Model.video_Path" type="video/mp4">
</video>
如果运行的是 IIS7 或更高版本,则可能还必须增加 maxAllowedContentLength,这基本上限制了发送到客户端的响应的大小。 它应该放在你的web.config文件中。
这大约是 1GB:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
<video width="100%" height="100%" controls autoplay>
<source src="~/@Model.video_Path" type="video/mp4">
</video>
这部分可能会导致问题,不建议使用您可以简单地将视频作为字节数组发送到视频标签中的源中的 src 标签
转到控制器并制作这样的方法
public ActionResult MyAction(string FilePath)
{
try
{
FilePath = Path.Combine(Server.MapPath("~/Uploads/Videos/") + FilePath);
byte[] myVideo = System.IO.File.ReadAllBytes(FilePath);
return new FileContentResult(myVideo, "video/mp4");
}
catch (Exception)
{
return View("_NotFoundVideo");
}
}
然后转到视频代码中源标记中的 src 属性并使用 @Url.Action() 这样你就可以得到视频的字节数组作为文件内容结果喜欢这个
@foreach (var item in Model)
{
<tr>
@if (item.Path != null || item.Name != null)
{
<td>
<h5> @Html.DisplayFor(modelItem => item.Name)</h5> <br />
<video style="width:900px; height:300px;" controls>
@*<source src="~/UpLoads/Videos/@item.Path" type="video/mp4" />*@
<source src="@Url.Action("MyAction", "Blobs", new { FilePath =item.Path })" type="video/mp4" />
<h1 class="glyphicon glyphicon-arrow-down"></h1>
</video>
</td>
}