Вложение изображения в мою контактную форму электронной почты, но изображение говорит: «Файл пуст» C # - PullRequest
0 голосов
/ 17 января 2012

Вот код ...

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.IO;

public partial class TestAttachSend : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSend_Click(object sender, EventArgs e)
    {
        if (fuImage.HasFile && fuImage.PostedFile.ContentType == System.Net.Mime.MediaTypeNames.Image.Jpeg)
        {
            SmtpClient emailClient = new SmtpClient();
            MailMessage EmailMsg = new MailMessage();

            EmailMsg.To.Add(txtEmail.Text.Trim());
            EmailMsg.From = new MailAddress(txtEmail.Text.Trim());
            EmailMsg.Subject = "Attached Image";
            EmailMsg.Body = "Image is attached!";

            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);
            EmailMsg.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));

            emailClient.Send(EmailMsg);

            lblSent.Visible = true;

        }
    }
}

Этот код работает. Но когда вы открываете прикрепленное изображение в письме, оно говорит: «Файл пуст»

Может кто-нибудь увидеть, где я ошибся ???

Также я хотел бы использовать несколько форматов изображений (GIF, PNG). но я не уверен, как это сделать.

1 Ответ

2 голосов
/ 17 января 2012

Попробуйте выполнить

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

перед передачей imgStream в конструктор Attachment.

...