使用AngularJS从ASP.NET Web API方法下载文件
使用AngularJS从ASP.NET Web API方法下载文件
在我的Angular JS项目中,我有一个锚点标签,当点击时会向WebAPI方法发出HTTP
GET
请求,该方法返回一个文件。
现在,我希望一旦请求成功,文件就会下载到用户的计算机上。我该如何做?
锚点标签:
下载图片
AngularJS:
$scope.getthefile = function () { $http({ method: 'GET', cache: false, url: $scope.appPath + 'CourseRegConfirm/getfile', headers: { 'Content-Type': 'application/json; charset=utf-8' } }).success(function (data, status) { console.log(data); // 如果文件是文本文件,则显示文本数据,如果是图像,则显示二进制数据 // 在这里该写什么来下载我从WebAPI方法收到的文件? }).error(function (data, status) { // ... }); }
我的WebAPI方法:
[Authorize] [Route("getfile")] public HttpResponseMessage GetTestFile() { HttpResponseMessage result = null; var localFilePath = HttpContext.Current.Server.MapPath("~/timetable.jpg"); if (!File.Exists(localFilePath)) { result = Request.CreateResponse(HttpStatusCode.Gone); } else { // 将文件返回给客户端 result = Request.CreateResponse(HttpStatusCode.OK); result.Content = new StreamContent(new FileStream(localFilePath, FileMode.Open, FileAccess.Read)); result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentDisposition.FileName = "SampleImg"; } return result; }