AngularJS를 사용하여 ASP.NET 웹 API 메서드에서 파일 다운로드
AngularJS로 개발할 때 외부 소스에서 파일을 다운로드해야 하는 경우가 많습니다. . 이는 원하는 파일을 반환하는 웹 API 메서드에 HTTP GET 요청을 함으로써 달성할 수 있습니다.
AngularJS에서 요청 구현
AngularJS에서 다운로드 프로세스를 시작하려면, $http 서비스를 사용하여 웹 API 메서드에 HTTP GET 요청을 보낼 수 있습니다. 예는 다음과 같습니다.
$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) { // Handle the downloaded file here }).error(function (data, status) { // Handle any errors that may occur }); }
웹 API 메서드에서 파일 반환
ASP.NET 웹 API 메서드에서 다음을 나타내도록 응답을 구성해야 합니다. 반환되는 콘텐츠는 다운로드용 파일입니다. 예는 다음과 같습니다.
[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 { // Serve the file to the client 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; }
AngularJS에서 다운로드한 파일 처리
AngularJS에서 다운로드한 파일을 처리하는 데 사용할 수 있는 두 가지 방법이 있습니다.
$scope.downloadFile = function (downloadPath) { window.open(downloadPath, '_blank', ''); }
$scope.downloadFile = function (httpPath) { $http.get(httpPath, { responseType: 'arraybuffer' }) .success(function (data, status, headers) { // Handle the downloaded file here using the data }).error(function (data, status) { // Handle any errors that may occur }); }
다음으로 웹 API 방법을 구성해야 합니다. x-filename 및 콘텐츠 유형.
이러한 기술을 구현하면 AngularJS를 사용하여 ASP.NET 웹 API 메서드에서 파일을 원활하게 다운로드할 수 있으므로 원활하고 기능적인 사용자 환경을 보장할 수 있습니다.
위 내용은 AngularJS를 사용하여 ASP.NET 웹 API에서 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!