我有一个ServiceStack服务,可以下载视频文件。完成此操作的代码如下。它适用于除iOS以外的所有设备(视频播放)。经过一些研究,似乎需要定制httphandler以支持“范围特定”请求。可以在以下网址中找到此问题的说明。
http://dotnetslackers.com/articles/aspnet/Range-Specific-Requests-in-ASP-NET.aspx
我想知道我是否可以自定义ServiceStack(以及我下面的下载代码)来支持范围特定的请求。谢谢。
if (fi.Exists)
{
//optimized way according to mythz
var aspRes = (System.Web.HttpResponse)base.RequestContext.Get<IHttpResponse>().OriginalResponse;
//aspRes.ContentType = "application/octet-stream";
aspRes.ContentType = "video/mp4";
aspRes.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
aspRes.AddHeader("content-length", fi.Length.ToString());
aspRes.TransmitFile(fi.FullName);
return null;
}
答案 0 :(得分:1)
注意:我上面链接的网站有用于实现MP4DownloadHandler的代码,可以插入并用于支持范围特定的下载请求。您必须使用ServiceStack注册此处理程序。所以这个问题不再适用了。
我确实有一个相关的问题,虽然(下面链接)有关访问缓存客户端的能力,因为我已经从我的自定义IHTTPHandler中绕过了ServiceStack。
I bypassed servicestack to implement my own IHTTPHandler, but now I want access to the cache