Прикрепите несколько форматов изображений, а не только JPG к электронной почте - PullRequest
3 голосов
/ 01 февраля 2012

Это то, что у меня есть ...

 MemoryStream imgStream = new MemoryStream();
        System.Drawing.Image img = System.Drawing.Image.FromStream(fuImage.PostedFile.InputStream);
        string filename = fuImage.PostedFile.FileName;

        img.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        imgStream.Seek(0L, SeekOrigin.Begin);
        EmailMsg.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));

Так что он прикрепляет изображение JPEG в порядке. Но я хочу изменить это так, чтобы он разрешал PNG и GIF.

Ответы [ 2 ]

4 голосов
/ 30 мая 2013

Вы, вероятно, уже нашли этот ответ, поэтому этот ответ предназначен для всех, кто сталкивается с этой проблемой.

    Image image = ConvertToImage(response);
    Stream imageStream = ToStream(image, ImageFormat.Png);
    LinkedResource logo = new LinkedResource(imageStream, "image/png");

Приведенный выше пример работал для меня, ConvertToImage возвращает System.Drawing.Image, а ToStream возвращает System.IO.Stream.

Надеюсь, это поможет!

1 голос
/ 12 апреля 2012

попробуйте это:

 string ext = System.IO.Path.GetExtension(this.imageUpload.PostedFile.FileName);

 string low = ext.ToLower();

 MemoryStream imgStream = new MemoryStream();

                System.Drawing.Image theImage = System.Drawing.Image.FromStream(imageUpload.PostedFile.InputStream);

                string filename = imageUpload.PostedFile.FileName;

              if (low == ".jpg")
                {
                    theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg);

                }
                else if (low == ".gif")
                {
                    theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Gif);
                }
                else if (low == ".tif")
                {
                    theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Tiff);
                }

            imgStream.Seek(0L, SeekOrigin.Begin);

                if (low == ".jpg")
                {

                    mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));
                }

                else if (low == ".gif")
                {

                    mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Gif));
                }

 else if (low == ".tif")
                {

                    mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Tiff));
                }

делать .png кажется немного хитрее, но по крайней мере это на правильном пути.

...