Как добавить вложение в веб-форму ASP, не загружается на сервер? - PullRequest
0 голосов
/ 03 января 2019

Я буду кратким, и к сути, так как я поражен, я дошел до этой точки, но предисловие я довольно новичок во всем, что связано с кодированием в целом;большая часть моих знаний - из книг, Youtube и поисков Google.

Мой вопрос:

Как я могу получить от конечного пользователя возможность прикрепить документ (jpeg, png и т. Д.) И отправить его по электронной почте для конкретных продажПредставитель нашей компании, без загрузки этого документа на наш сервер, с помощью формы ASP?

Я создал форму, которую моя компания использует для получения базовой информации от посетителей.Теперь они хотели бы, чтобы с помощью этой формы также отправлялись прикрепленные к фотографиям их идентификаторы участников, но не сохранялись на сервере, а просто прикреплялись и отправлялись прямо на электронную почту торгового представителя.

Это то, что у меня есть, и я не уверен, что это лучший способ практики, но это то, что я собрал только из фрагментов кода, книг и т. Д. И т. Д. Я многое обрезал, чтобы несделать это очень долго и просто добраться до сути того, что я хотел бы сделать.Поэтому, если что-то не имеет смысла, дайте мне знать, что я определенно постараюсь уточнить это лучше, но я избавился от многих опций стилевого оформления и других полей, спрашивая адрес, номер телефона и т. Д., Например.

Default.aspx

<body>
<form id="form1" runat="server">
<table>    
<tr>
<td> Full Name:
<asp:TextBox ID="Name" runat="server"> 
</asp:TextBox>
</td>
</tr>
</table>

<blockquote>
<p>
<asp:Button ID="Button1" runat="server" Text="Submit Member ID" 
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Reset Form" 
OnClick="Button2_Click" />
</p>
</blockquote>

</form>
</body>
</html>

И страница на бэкэнде, которая заставляет его работать, выглядит следующим образом:

Default.aspx.cs

using System;
using System.Net.Mail;
using System.Net;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class _Default : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
  {
  }
  protected void Button1_Click(object sender, EventArgs e)
  {   
   String strResult = "Member ID: Results \r\n \r\nResults: \r\n";                
   strResult += "Name: " + Name.Text + "\r\n";       
   MailAddress fromAddress = new MailAddress("mydomain@domain.com", 
   "Webmaster");
   smtpClient.Host = "erelay.mydomain.com"; //"localhost";
   smtpClient.Port = XX;
   message.From = fromAddress;
   message.To.Add("salesrep1@domain.com");
   message.CC.Add("salesrepmanager@domain.com");
   message.BccAdd("salesrepCEO@domain.com"); 
   message.Subject = "Member ID";
   message.IsBodyHtml = false; 
   message.Body = strResult;         
   smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
   smtpClient.Send(message);
   Response.Redirect("thankyoupage@domain.com");   
  }
protected void Button2_Click(object sender, EventArgs e)
 {
 Name.Text="";
 }
}

После этого единственное, что им хотелось бы, - это возможность для участников присоединять своих участников.Идентификатор, либо отсканированное фото, либо что у вас есть, чтобы отправить вместе с формой.Отсканированный идентификатор участника может быть в формате JPEG, PNG, PDF, что угодно, это на самом деле не имеет значения, единственное, чего они не хотят, это тот факт, что он будет загружен на наш сервер.

Я посмотрел в Интернете и просмотрел кучу примеров и фрагментов кода, которые другие опубликовали, и ближе всего к его работе я могу привести что-то вроде этого в части HTML, скажем, например, после запросаИмя:

<tr>  
<td>  
<asp:FileUpload ID="FileUpload" runat="server" />  
</td>
</tr>  

А затем в серверной части на aspx.cs, добавив его после message.body

if (FileUpload.HasFile)  
{  
message.Attachments.Add(new Attachment(FileUpload.PostedFile.InputStream, 
FileUpload.FileName));  
}  

Я также видел другие фрагменты кода, которые кажутсявременно создать местоположение на сервере и затем самостоятельно удалить после его отправки?

Я также пытался сделать третью кнопку, подобную этой, в качестве приложения, но все сломалось.

protected void Button3_Click

Надеюсь, это сообщение имеет смысл.Я предложил использовать сторонний сайт, но компания настаивает на том, чтобы он был внутренним.Мое другое предложение в настоящее время показывает фактический адрес электронной почты в форме, куда отправлять документацию, но компания считает, что это слишком много шагов для конечного пользователя, и не все из них делают это / пропускают эту часть.

Сама форма отлично работает, она отправляет информацию представителю, которого я добавляю, а также всем, кто нуждается в CC'd или Bcc'd на нем.

Если кто-то может указать мнеправильное направление, я также был бы признателен за это.В Интернете я также прочитал много документации по ASP.NET, но это может немного расстроить кого-то нового.

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...