Получение приложения EmailMessage через FileStreamResult - PullRequest
2 голосов
/ 06 августа 2010

У меня есть этот код здесь, где я получаю вложение из сообщения электронной почты, которое находится на сервере Exchange с использованием 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);

Я могу нормально загрузить файл, однако он поврежден ... Есть личто-то мне не хватает?

1 Ответ

2 голосов
/ 06 августа 2010

Вместо этого вы можете напрямую использовать FileContentResult - таким образом вам не нужно проходить через MemoryStream. Таким образом, вы рискуете что-нибудь сломать.

return FileContent(fileAttachment.Content, attachment.ContentType);

Вы также можете установить FileDownloadName, если вы не хотите, чтобы файл отображался внутри браузера.

...