2

J'ai ce code là où je récupérer une pièce jointe d'un message électronique qui est sur le serveur Exchange à l'aide EWSObtenir un attachement EmailMessage via FileStreamResult

  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 a-t-il quelque chose qui me manque?

Répondre

2

Vous pouvez utiliser un FileContentResult directement à la place - de cette façon vous n'avez 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 le faites pas veulent que le fichier à afficher en ligne dans le navigateur.

+0

apparemment j'ai oublié à theMemStream.Seek (0, SeekOrigin.Begin); C'est pourquoi votre droit ... merci ... – Sevki

+0

@Sevki C'est un classique. Je l'ai manqué aussi. :) – bzlm

Questions connexes