У меня есть приложение ASP.net, а на странице # 2 (pg2) пользователь может загрузить вложение. На странице # 3 (pg3) мое подтверждение, когда пользователь нажимает кнопку отправки. Затем он отправляет мне электронное письмо со всеми подробностями. Эта функциональность работает нормально, но я не получаю вложение, так как не знаю, как передать страницу на страницу в сеансе.Сохранить вложение в сеансе
Page 2 Код
Приведенный ниже код показывает, как я прохожу детали, введенные на странице 2 в сессии
protected void pg2button_Click(object sender, EventArgs e)
{
Session["pg2"] = txtData2.Text;
Session["pg2Yes"] = pg2Yes.Checked ? "Yes" : "";
// CODE HERE TO PASS/STORE UPLOADED DOC
Session["pg2No"] = pg2No.Checked ? "No" : "";
Response.Redirect("/Quotation/pg3.aspx");
}
И это мой HTML
<div class="form-group">
<asp:Label ID="Label3" class="col-md-3 control-label" runat="server" Text="Upload"></asp:Label>
<div class="col-md-3">
<asp:FileUpload ID="fuAttachment" runat="server" class="form-control"></asp:FileUpload>
</div>
</div>
Page 3 Код
protected void pg3button_Click(object sender, EventArgs e)
{
try
{
//Create the msg object to be sent
MailMessage msg = new MailMessage();
//Add your email address to the recipients
msg.To.Add("[email protected]");
//Configure the address we are sending the mail from
MailAddress address = new MailAddress("[email protected]");
msg.From = address;
//Append their name in the beginning of the subject
msg.Subject = "Quote Requst";
msg.Body = Label1.Text + " " + Session["pg1input"].ToString()
+ Environment.NewLine.ToString() +
Label5.Text + " " + Session["emailinput"].ToString()
+ Environment.NewLine.ToString() +
Label2.Text + " " + Session["pg1dd"].ToString()
+Environment.NewLine.ToString() +
Label3.Text + " " + Session["pg2"].ToString();
//Configure an SmtpClient to send the mail.
SmtpClient client = new SmtpClient("smtp.live.com", 587);
client.EnableSsl = true; //only enable this if your provider requires it
//Setup credentials to login to our sender email address ("UserName", "Password")
NetworkCredential credentials = new NetworkCredential("[email protected]", "Password");
client.Credentials = credentials;
//Send the msg
client.Send(msg);
Response.Redirect("/Quotation/pg4.aspx");
}
catch
{
//If the message failed at some point, let the user know
lblResult.Text = "<div class=\"form-group\">" + "<div class=\"col-xs-12\">" + "There was a problem sending your request. Please try again." + "</div>" + "</div>" + "<div class=\"form-group\">" + "<div class=\"col-xs-12\">" + "If the error persists, please contact us." + "</div>" + "</div>";
}
}
Ссылка ниже я могу получить, чтобы работать, но только если поле загрузки находится на той же странице http://www.aspsnippets.com/Articles/How-to-send-email-with-attachment-in-ASPNet.aspx
Какого контроля вы использовали для загрузки? Можете ли вы как-нибудь получить байты? –
не сохранять вложение, сохранять путь скорее в сеансе – Imad
@ImadoddinIbnAlauddin Не уверен, как это сделать – murday1983