ASP.NET(C#)Web Apiファイルストリームからローカルインスタンスにファイルをダウンロード

2780 ワード

ファイルをローカルにダウンロードすることは、多くのプロジェクト開発で実現する簡単な機能です.簡単に言えば、具体的なコード実装から言えば、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もちろん、サンプルプロジェクトのトップページのダウンロードリンク体験を直接通じて、「サンプルファイルをダウンロードする」ボタンをクリックすると、ファイルを保存するヒントがポップアップされます.はい、例は簡単ですから、言うまでもありません.サンプルソースコードをダウンロードするには、ここをクリックします.