2010-07-07 27 views
10

DB'den alınan kodlanmış bir .docx olan bayt dizilim var. Bu bayt [] 'ı özgün dosyaya dönüştürmeye ve dosyayı ilk olarak diskte dosya olarak saklamak zorunda kalmadan postaya ek olarak yapmaya çalışıyorum. Bu konuda gitmenin en iyi yolu nedir?Bir bayt dizisini posta ekine nasıl dönüştürebilirsiniz

public MailMessage ComposeMail(string mailFrom, string mailTo, string copyTo, byte[] docFile) 
{ 
    var mail = new MailMessage(); 

    mail.From = new MailAddress(mailFrom); 

    mail.To.Add(new MailAddress(mailTo)); 
    mail.Body = "mail with attachment"; 

    System.Net.Mail.Attachment attachment; 

    //Attach the byte array as .docx file without having to store it first as a file on disk? 
    attachment = new System.Net.Mail.Attachment("docFile"); 
    mail.Attachments.Add(attachment); 

    return mail; 
} 

cevap

16

akışı sürer Attachment bir overload of the constructor yoktur. Doğrudan byte[] kullanarak MemoryStream oluşturarak dosyada iletebilirsiniz:

MemoryStream stream = new MemoryStream(docFile); 
Attachment attachment = new Attachment(stream, "document.docx"); 

İkinci argüman MIME türü anlaşılmaktadır edilecek olan dosyanın adıdır. Bitirdikten sonranumaralı telefondan Dispose() numaralı telefonu aramayı unutmayın.

İlgili konular