下载 – 使用ASP.Net Webapi流式传输大图像
发布时间:2020-05-24 01:01:06 所属栏目:asp.Net 来源:互联网
导读:我们正在尝试使用ASP.Net WebApi返回大图像文件,并使用以下代码将字节流传输给客户端. public class RetrieveAssetController : ApiController{ // GET api/retrieveasset/5 public HttpResponseMessage GetAsset(int id) { Ht
|
我们正在尝试使用ASP.Net WebApi返回大图像文件,并使用以下代码将字节流传输给客户端. public class RetrieveAssetController : ApiController
{
// GET api/retrieveasset/5
public HttpResponseMessage GetAsset(int id)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
string filePath = "SomeImageFile.jpg";
MemoryStream memoryStream = new MemoryStream();
FileStream file = new FileStream(filePath,FileMode.Open,FileAccess.Read);
byte[] bytes = new byte[file.Length];
file.Read(bytes,(int)file.Length);
memoryStream.Write(bytes,(int)file.Length);
file.Close();
httpResponseMessage.Content = new ByteArrayContent(memoryStream.ToArray());
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
httpResponseMessage.StatusCode = HttpStatusCode.OK;
return httpResponseMessage;
}
}
上面的代码工作正常,但我们处理的一些文件可能是2 GB和更大的大小导致连接超时.我们以前使用过的代码(使用HttpHandlers)来响应响应流来保持连接的成功. byte[] b = new byte[this.BufferChunkSize];
int byteCountRead = 0;
while ((byteCountRead = stream.Read(b,b.Length)) > 0)
{
if (!response.IsClientConnected) break;
response.OutputStream.Write(b,byteCountRead);
response.Flush();
}
我们如何使用类似的技术使用前面显示的新的WebAPI编程模型? 先谢谢你 解决方法是的,您可以使用PushStreamContent.如果将它与异步执行(即异步lambdas)组合在一起,您可能会获得更有效的结果.我在本月初 – http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/发表了关于这种做法的博客. 这个例子使用了一个视频文件,其原理是一样的 – 把数据的数据推下给客户端. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – MVC的最佳实践..使用接口的ViewModel绑定示例
- asp.net-mvc-3 – MVC 3模型属性未在html.action调用的部分
- asp.net-mvc – 获取索引值razor foreach
- asp.net – URL重写 – web.config错误
- .net – 设置runat = server时输入名称和ID更改
- asp.net – Internet Explorer 11在服务器端的检测
- asp.net中js+jquery添加下拉框值和后台获取示例
- asp.net – 使用Html而不是csHtml
- asp.net-mvc – MVC / Razor – 当有下列括号时,Intellisen
- asp.net-mvc-4 – 在VS2012中运行代码分析时出错
推荐文章
站长推荐
- 为什么ASP.NET页面在本地主机上比在生产服务器上
- asp.net – 如何使用AntiXss Library正确清理内容
- asp.net-mvc – Asp.net mvc 301从www.domain.co
- 介绍几种 ADO.net 中的数据库连接方式
- asp.net – 通过GET访问Mvc Web API复杂对象查询
- ASP.NET Web应用程序(.NET Framework)与ASP.NET核
- asp.net-mvc – 如何用ASP.NET MVC命令查询责任分
- asp.net-mvc – 在ASP.NET会话中存储任何内容导致
- asp.net – 我可以在服务器端调用CustomValidato
- asp.net-mvc – AntiXss保护Html模型属性
热点阅读
