Heim >Backend-Entwicklung >C++ >Wie lade ich Dateien von einer ASP.NET-Web-API mit AngularJS herunter?

Wie lade ich Dateien von einer ASP.NET-Web-API mit AngularJS herunter?

Linda Hamilton
Linda HamiltonOriginal
2025-01-02 21:57:39276Durchsuche

How to Download Files from an ASP.NET Web API Using AngularJS?

Dateien von einer ASP.NET-Web-API-Methode mit AngularJS herunterladen

Bei der Entwicklung mit AngularJS ist es oft notwendig, Dateien von externen Quellen herunterzuladen . Dies kann erreicht werden, indem HTTP-GET-Anfragen an Web-API-Methoden gestellt werden, die die gewünschten Dateien zurückgeben.

Implementieren der Anfrage in AngularJS

Um den Download-Prozess in AngularJS zu starten, Sie können den $http-Dienst verwenden, um eine HTTP-GET-Anfrage an Ihre Web-API-Methode zu stellen. Hier ist ein Beispiel:

$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
  });
}

Zurückgeben der Datei von der Web-API-Methode

In Ihrer ASP.NET-Web-API-Methode müssen Sie die Antwort so konfigurieren, dass sie angezeigt wird dass es sich bei dem zurückgegebenen Inhalt um eine Datei zum Herunterladen handelt. Hier ist ein Beispiel:

[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;
}

Verwaltung der heruntergeladenen Datei in AngularJS

Es gibt zwei Methoden, mit denen Sie die heruntergeladene Datei in AngularJS verarbeiten können:

  1. Einfach Download:
$scope.downloadFile = function (downloadPath) {
  window.open(downloadPath, '_blank', '');
}
  1. Ajax-Binär-Download:
$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
  });
}

Denken Sie daran, Ihre Web-API-Methode zu konfigurieren Geben Sie die entsprechenden Antwortheader an, einschließlich X-Dateiname und Inhaltstyp.

Durch die Implementierung dieser Techniken können Sie nahtlos herunterladen Dateien aus einer ASP.NET-Web-API-Methode mit AngularJS, um eine reibungslose und funktionale Benutzererfahrung zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien von einer ASP.NET-Web-API mit AngularJS herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn