FileUpload.FileContent теряет контент при отправке сообщения - PullRequest
0 голосов
/ 25 января 2020

У меня есть этот код для предварительного просмотра после использования элемента управления 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;
            }

        }
...