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

 更新时间:2016年06月23日 09:52:10   投稿:yourber   我要评论
这篇文章主要介绍了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#中的params关键字实现方法形参个数可变

    用C#中的params关键字实现方法形参个数可变

    个人认为,提供params关键字以实现方法形参个数可变是C#语法的一大优点。在方法形参列表中,数组类型的参数前加params关键字,通常可以在调用方法时代码更加精练
    2012-01-01
  • asp.net中GridView编辑,更新,合计用法示例

    asp.net中GridView编辑,更新,合计用法示例

    这篇文章主要介绍了asp.net中GridView编辑,更新,合计用法,结合实例形式分析了asp.net中GridView常见的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • C#实现把图片下载到服务器代码

    C#实现把图片下载到服务器代码

    本文给大家分享的是实现这样一个功能,想将远程服务器的图片下载到本地主机,图片的名称就是数据库的一个字段,图片不是以二进制的形式存储在数据库的,数据库存储的只是图片的名词。
    2015-11-11
  • asp.net下加密Config的方法

    asp.net下加密Config的方法

    本文说明使用RSAProtectedConfigurationProvidert和计算机级别的密钥容器进行加密的步骤。
    2011-02-02
  • Asp.Net套用母版页后元素ID不一致(个人总结)

    Asp.Net套用母版页后元素ID不一致(个人总结)

    这篇文章主要介绍了Asp.Net套用母版页后元素ID不一致(个人总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • .Net多线程编程(误用点分析)

    .Net多线程编程(误用点分析)

    本文主要介绍了.Net多线程编程中的误用点分析。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • ASP.NET实现基于Forms认证的WebService应用实例

    ASP.NET实现基于Forms认证的WebService应用实例

    这篇文章主要介绍了ASP.NET实现基于Forms认证的WebService应用,实例分析了使用Forms进行WebService身份认证的相关技巧与实现方法,需要的朋友可以参考下
    2015-05-05
  • asp.net 页面版文本框智能提示JSCode (升级版)

    asp.net 页面版文本框智能提示JSCode (升级版)

    模拟百度,Google智能提示,非与服务器端交互的,数据源来自已经绑定好的下拉列表。纯客户端脚本 升级版
    2009-12-12
  • 使用C#处理WebBrowser控件在不同域名中的跨域问题

    使用C#处理WebBrowser控件在不同域名中的跨域问题

    我们在做web测试时,经常会使用WebBrowser来进行一些自动化的任务而有些网页上面会用IFrame去嵌套别的页面,这些页面可能不是在相同域名下的,这时就会出现跨域问题,无法直接在WebBrowser中获取到IFrame中的元素,接下来介绍如何解决此问题,需要了解的朋友可以参考下
    2012-12-12
  • 写简单的mvc框架实例讲解

    写简单的mvc框架实例讲解

    在本篇内容中教给大家写一个简单的mvc框架步骤以及相关知识点,有需要的朋友们学习下。
    2019-02-02

最新评论