Maison > développement back-end > C++ > Comment télécharger des fichiers à partir d'une API Web ASP.NET à l'aide d'AngularJS ?

Comment télécharger des fichiers à partir d'une API Web ASP.NET à l'aide d'AngularJS ?

Linda Hamilton
Libérer: 2025-01-02 21:57:39
original
271 Les gens l'ont consulté

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

Télécharger des fichiers à partir d'une méthode API Web ASP.NET à l'aide d'AngularJS

Lors du développement avec AngularJS, il est souvent nécessaire de télécharger des fichiers à partir de sources externes . Ceci peut être réalisé en envoyant des requêtes HTTP GET aux méthodes de l'API Web qui renvoient les fichiers souhaités.

Implémentation de la requête dans AngularJS

Pour lancer le processus de téléchargement dans AngularJS, vous pouvez utiliser le service $http pour envoyer une requête HTTP GET à votre méthode API Web. Voici un exemple :

$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
  });
}
Copier après la connexion

Renvoi du fichier à partir de la méthode API Web

Dans votre méthode API Web ASP.NET, vous devez configurer la réponse pour indiquer que le contenu renvoyé est un fichier à télécharger. Voici un exemple :

[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;
}
Copier après la connexion

Gestion du fichier téléchargé dans AngularJS

Il existe deux méthodes que vous pouvez utiliser pour gérer le fichier téléchargé dans AngularJS :

  1. Simple Télécharger :
$scope.downloadFile = function (downloadPath) {
  window.open(downloadPath, '_blank', '');
}
Copier après la connexion
  1. Téléchargement binaire Ajax :
$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
  });
}
Copier après la connexion

N'oubliez pas de configurer votre méthode API Web pour spécifiez les en-têtes de réponse appropriés, y compris x-filename et content-type.

En mettant en œuvre ces techniques, vous pouvez en toute transparence téléchargez des fichiers à partir d'une méthode API Web ASP.NET à l'aide d'AngularJS, garantissant une expérience utilisateur fluide et fonctionnelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal