Obtenir une pièce jointe EmailMessage via FileStreamResult
Question
J'ai ce code là où je récupérer une pièce jointe d'un message électronique qui est à l'aide d'Exchange Server EWS
Attachment attachment = message.Attachments.Single(att => att.ContentId == Request.QueryString["cid"]);
attachment.Load();
FileAttachment fileAttachment = attachment as FileAttachment;
fileAttachment.Load();
byte[] bytes = fileAttachment.Content;
Stream theMemStream = new MemoryStream();
theMemStream.Write(bytes, 0, bytes.Length);
return new FileStreamResult( theMemStream, attachment.ContentType);
Je peux télécharger le fichier très bien mais ils sont corrompus ... Y at-il quelque chose que je suis absent?
La solution
Vous pouvez utiliser un FileContentResult directement à la place - de cette façon vous ne devez pas passer par un MemoryStream
. De cette façon, vous avez moins de risque de casser quoi que ce soit.
return FileContent(fileAttachment.Content, attachment.ContentType);
Vous pouvez également régler le FileDownloadName
si vous ne pas voulez que le fichier à afficher en ligne dans le navigateur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow