Conseguir un adjunto EmailMessage través FileStreamResult
Pregunta
Tengo este código aquí donde puedo recuperar un archivo adjunto de un mensaje de correo electrónico que se encuentra en el servidor de Exchange utilizando 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);
puedo descargar el archivo muy bien sin embargo, están corrompidos ... ¿Hay algo que me falta?
Solución
Se puede utilizar un FileContentResult directamente en lugar - de esa manera usted no tiene que ir a través de un MemoryStream
. De esta manera, con menos riesgo de romper nada.
return FileContent(fileAttachment.Content, attachment.ContentType);
También puede ser que desee establecer el FileDownloadName
si no desea que el archivo en línea de visualización en el navegador.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow