Web Api 2 - Comment retourner une image (MemoryStream de Stockage Azure) à partir d'un HTTPGET sans l'enregistrer sur le disque?
Je suis à l'aide de l'Api Web 2 avec C# et d'Azur, et d'avoir des problèmes avec la façon de retourner l'image (de la base à partir de Memorystream) pour l'affichage sur la page...
Voici mon Contrôleur HTTPGET
[Route("api/PhotoSubmit/GetPhoto/{id}")]
[HttpGet]
public HttpResponseMessage GetPhotoById(int id)
{
StorageServices storage = new StorageServices();
MemoryStream ms = storage.DownloadBlob(id);
//return what ?
}
Ici est le début de la servicecall :
$http({
method: 'GET',
url: 'api/PhotoSubmit/GetPhoto/' + $routeParams.id,
accept: 'application/json'
})
.success(function(result) {
//How do i handle the result and what HTML should i use ? <img ?
});
double possible de ASP .Net Web API téléchargement d'images sous forme de fichiers binaires
Merci pour le lien 🙂 Il pourrait m'aider un peu, mais j'ai encore besoin de comprendre comment gérer la réponse sur le client : string fileName = string.Format("{0}.jpg", id); FileStream fileStream = FileProvider.Open(fileName); HttpResponseMessage response = new HttpResponseMessage { Contenu = new StreamContent(fileStream) }; réponse.Contenu.Les en-têtes.ContentType = new MediaTypeHeaderValue("image/jpg"); réponse.Contenu.Les en-têtes.ContentLength = FileProvider.GetLength(nom de fichier); return réponse;
Il y a également une référence à un FileProvider qui quand j'ai google, je ne trouve ceci : piotrwalat.net/... et c'est aussi l'utilisation du stockage sur le disque il me semble ?
Merci pour le lien 🙂 Il pourrait m'aider un peu, mais j'ai encore besoin de comprendre comment gérer la réponse sur le client : string fileName = string.Format("{0}.jpg", id); FileStream fileStream = FileProvider.Open(fileName); HttpResponseMessage response = new HttpResponseMessage { Contenu = new StreamContent(fileStream) }; réponse.Contenu.Les en-têtes.ContentType = new MediaTypeHeaderValue("image/jpg"); réponse.Contenu.Les en-têtes.ContentLength = FileProvider.GetLength(nom de fichier); return réponse;
Il y a également une référence à un FileProvider qui quand j'ai google, je ne trouve ceci : piotrwalat.net/... et c'est aussi l'utilisation du stockage sur le disque il me semble ?
OriginalL'auteur Terje Nygård | 2014-07-27
Vous devez vous connecter pour publier un commentaire.
Du côté client que vous n'avez pas besoin d'utiliser $http. Vous pouvez simplifier le processus en utilisant le bon vieux HTML...
Pour les images dynamiques utiliser JQuery comme ça...
Le navigateur va automatiquement faire le travail de faire une Requête HTTP de l'image, vous permet d'économiser toute la complexité.
Sur le côté serveur, vous pouvez utiliser un processus comme ces pour charger le fichier et de le transmettre à la client. Il est important que le Serveur de code de retour le bon type MIME comme...
Ressources:
ASP .Net Web API téléchargement d'images sous forme de fichiers binaires
...et...
Affichage de l'Image à l'aide de Gestionnaire ashx
Je suis à l'aide de l'API web et oauth, donc quand je l'utilise
<img src="/api/PhotoSubmit/GetPhoto/2232" />
car jeton n'est pas définie dans la requête get, pouvez-vous maintenant, comment puis-je afficher une image ?Je ne suis pas sûr de savoir comment vous pourriez utiliser serment dans ce cas, il peut être possible. Ce que je pourrais faire pour faire simple et rapide est de contourner serment pour que l'Action à l'aide de la [AllowAnonymous] attribut, puis ajouter un paramètre pour un jeton d'authentification... et passe le jeton via la chaîne de requête. <img src="/api/PhotoSubmit/GetPhoto/2232?token=SdLK3424ksflS" />
Je sais que c'est vieux, mais ce n'est pas de travail pour moi. Quelqu'un pourrait-il fournir un exemple plus complet avec le code côté serveur?
OriginalL'auteur Ty H.