Retourne une image jpeg à partir de Asp.Net Core WebAPI
À l'aide de asp.net de base de l'api webje veux avoir ma méthode d'action du contrôleur de retour d'un image jpeg flux de.
Dans mon implémentation actuelle, navigateur affiche uniquement une chaîne json.
Mon espoir est de voir l'image dans le navigateur.
Pendant le débogage à l'aide de chrome developer tools, j'ai trouvé que le type de contenu est encore
Content-Type:application/json; charset=utf-8
retourné dans l'en-tête de réponse, même si dans mon code je de définir manuellement le type de contenu "image/jpeg".
La recherche d'une solution Mon API Web est comme ci-dessous
[HttpGet]
public async Task<HttpResponseMessage> Get()
{
var image = System.IO.File.OpenRead("C:\\test\random_image.jpeg");
var stream = new MemoryStream();
image.CopyTo(stream);
stream.Position = 0;
result.Content = new StreamContent(image);
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "random_image.jpeg";
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
result.Content.Headers.ContentLength = stream.Length;
return result;
}
source d'informationauteur hannes neukermans
Vous devez vous connecter pour publier un commentaire.
Propre solution utilisation FilestreamResult !!
explication:
Dans Asp.Net de Base, vous devez utiliser le de Fichier intégré() la méthode à l'intérieur du Contrôleur. Cela vous permettra de définir manuellement le type de contenu.
Ne pas créer et retourner HttpResponseMessage, comme vous en aviez l'habitude d'utiliser Asp.net web api 2. Cela ne sert à rien, pas même de jeter des erreurs !!
PhysicalFile aide à reprendre le fichier à partir de Asp.Net Core WebAPI avec une syntaxe simple