主页 > 知识库 > ASP.NET(C#) Web Api通过文件流下载文件的实例

ASP.NET(C#) Web Api通过文件流下载文件的实例

热门标签:解决方案 服务器配置 地方门户网站 电子围栏 智能手机 呼叫中心 苹果 硅谷的囚徒呼叫中心

下载文件到本地是很多项目开发中需要实现的一个很简单的功能。说简单,是从具体的代码实现上来说的,.NET的文件下载方式有很多种,本示例给大家介绍的是ASP.NET Web Api方式返回HttpResponseMessage下载文件到本地。实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;

namespace DownloadFileFromWebApi.Controllers
{
 [RoutePrefix("download")]
 public class DownloadController : ApiController
 {
 [Route("get_demo_file")]
 public HttpResponseMessage GetFileFromWebApi()
 {
  try
  {
  var FilePath = System.Web.Hosting.HostingEnvironment.MapPath(@"~/download/EditPlus64_xp85.com.zip");
  var stream = new FileStream(FilePath, FileMode.Open);
  HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
  response.Content = new StreamContent(stream);
  response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
  response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { 
  FileName="Wep Api Demo File.zip"
  };
  return response;
  }
  catch
  {
  return new HttpResponseMessage(HttpStatusCode.NoContent);
  }
 }
 }
}

实现以上控制器后,我们可以直接打开这个api的地址(示例中的地址为:http://localhost:60560/download/get_demo_file),即可弹出下载文件的对话框了,如图: asp-net-web-api-download-file 当然,也可以直接通过示例项目首页的下载链接体验,点击“下载示例文件”按钮,将会弹出保存文件的提示。 好了,示例比较简单,不用多说了。点击这里下载示例源码。

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • C# web api返回类型设置为json的两种方法
  • C#中通过API实现的打印类 实例代码
  • C#实现快递api接口调用方法
  • C#通过WIN32 API实现嵌入程序窗体
  • 使用C#调用系统API实现内存注入的代码
  • c#调用api控制windows关机示例(可以重启/注销)
  • C#利用win32 Api 修改本地系统时间、获取硬盘序列号
  • C#获取USB事件API实例分析
  • c#之利用API函数实现动画窗体的方法详解
  • C# API中模型与它们的接口设计详解

标签:喀什 房产 德宏 佳木斯 泰安 海口 吕梁 玉林

巨人网络通讯声明:本文标题《ASP.NET(C#) Web Api通过文件流下载文件的实例》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266