У меня есть этот код для предварительного просмотра после использования элемента управления FileUpload
в asp. net, но когда он отправляет электронное письмо, он отправляет электронное письмо с телом To, From, и др c. и файл вложения имеет правильное имя файла, но не содержание (пример: если размер файла 10mb
, размер файла в электронном письме 253b
)
Кнопка для предварительного просмотра изображения внутри WebForm и я использую Session [] для сохранения контента из Fileupload
, чтобы он не терялся после кнопки PostBack
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
HttpPostedFile postedfile = FileUpload1.PostedFile;
string filename = Path.GetFileName(postedfile.FileName);
string fileExtension = Path.GetExtension(filename);
int filesize = postedfile.ContentLength;
if (fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".jpeg" || fileExtension.ToLower() == ".png")
{
Session["FileUpload1"] = FileUpload1;
int Tamanio = FileUpload1.PostedFile.ContentLength;
byte[] ImagenOriginal = new byte[Tamanio];
FileUpload1.PostedFile.InputStream.Read(ImagenOriginal, 0, Tamanio);
Bitmap ImagenoriginalBinaria = new Bitmap(FileUpload1.PostedFile.InputStream);
string ImagenDataUrl64 = "data:image/jpg;base64," + Convert.ToBase64String(ImagenOriginal);
ImgPreview.ImageUrl = ImagenDataUrl64;
LblFileupload.Text = filename;
}
else
{
MensajeJQ("Solo imagenes en Formato Imagen JPG - JPEG - PNG", "Aviso del Sistema");
return;
}
}
}
для отправки электронной почты
protected void BtnSi_Click(object sender, EventArgs e)
{
//Boolean correcto = false;
try
{
if (Session["FileUpload1"].ToString()=="")
{
MensajeJQ("Por favor Adjunte un Archivo", "Aviso del Sistema"); return;
}
else
{
FileUpload1 = (FileUpload)Session["FileUpload1"];
if (FileUpload1.HasFile)
{
HttpPostedFile postedfile = FileUpload1.PostedFile;
string filename = Path.GetFileName(postedfile.FileName);
string fileExtension = Path.GetExtension(filename);
int filesize = postedfile.ContentLength;
if (filesize > 10000000)
{
MensajeJQ("El archivo no puede pesar más de 10mb", "Aviso del Sistema");
return;
}
if (fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".jpeg" || fileExtension.ToLower() == ".png")
{
BtnSi.Enabled = false;
BtnNo.Enabled = false;
DataSet Tableform = new DataSet();
Tableform = Obj.Ws_Usp_Up_Solicitudes(8, TxtSolicitud.Text, Session["0"].ToString(), "", "");
MailMessage myMailMessage = new MailMessage();
string fromAddress = Crypt.Crypto.Decrypt(GraphicText.GraphicText.SvrApp.StrCorreo);
string toAddress = Tableform.Tables[0].Rows[0][1].ToString();
string mailServer = Crypt.Crypto.Decrypt(GraphicText.GraphicText.SvrApp.StrServer);
myMailMessage.To.Add(toAddress);
myMailMessage.From = new MailAddress(fromAddress);
myMailMessage.Subject = Tableform.Tables[0].Rows[0][3].ToString();
myMailMessage.IsBodyHtml = true;
myMailMessage.Body = Tableform.Tables[0].Rows[0][0].ToString();
myMailMessage.CC.Add(Tableform.Tables[0].Rows[0][2].ToString());
myMailMessage.Bcc.Add(Tableform.Tables[0].Rows[0][4].ToString());
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
Attachment myAttachment = new Attachment(FileUpload1.FileContent, fileName);
myMailMessage.Attachments.Add(myAttachment);
SmtpClient mySmtpClient = new SmtpClient(mailServer);
HttpFileCollection fc = Request.Files;
mySmtpClient.Credentials = new System.Net.NetworkCredential(Crypt.Crypto.Decrypt(GraphicText.GraphicText.SvrApp.StrUser), Crypt.Crypto.Decrypt(GraphicText.GraphicText.SvrApp.StrPss));
mySmtpClient.Port = 25;
mySmtpClient.Send(myMailMessage);
// MensajeJQ("Confirmación Enviada Correctamente", "Aviso del Sistema");
Response.Redirect(Page.ResolveUrl("~") + @"SolicitudesIngresadas/MenuTomaFirmas.aspx");
}
else
{
MensajeJQ("Solo imagenes en Formato Imagen JPG - JPEG - PNG", "Aviso del Sistema");
return;
}
}
else
{
MensajeJQ("Por favor Adjunte un Archivo", "Aviso del Sistema"); return;
}
}
}
catch (Exception)
{
throw;
}
}