Как я могу прикрепить файл PDF, хранящийся в виде двоичного объекта в SQL Server, к электронному письму? - PullRequest
1 голос
/ 11 июня 2010

Я хотел бы прикрепить файл PDF, хранящийся в виде двоичного объекта на SQL Server, к электронному письму, но без создания (временного) файла на диске.

У меня уже есть первый шаг, чтобы извлечь PDFфайл из двоичного поля в SQL Server в виде byte[] массива.

Также у меня есть шаг для установки MailMessage:

MailMessage aMailMessage = new MailMessage();
// set address, subject, body
aMailMessage.Attachments.Add(attachment);

Где я застрял, это attachment object:

Attachment attachment = new Attachment(... what goes here? ...);

Конструктор Attachment принимает в основном либо string fileName (которого у меня нет и не хочу), либо System.IO.Stream contentStream.

Так что мой вопросis: С данным массивом byte[] возможно ли создать соответствующий объект Attachment без промежуточного файла на диске и какие шаги мне нужно сделать?

Заранее спасибо!

1 Ответ

2 голосов
/ 11 июня 2010

Вы можете преобразовать байт [] в MemoryStream и создать из него Attachment экземпляр.Вот пример:

ContentType ct = new ContentType(MediaTypeNames.Application.Pdf);
MemoryStream pdf = new MemoryStream(pdfContent);
Attachment data = new Attachment(pdf, ct);
...