Получение вложении электронной почты по электронной почте через Filestreamresult

StackOverflow https://stackoverflow.com/questions/3421250

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top