Http Upload and send Attachments in .Net
A while ago as part of a .net based web mail client I wrote some code to upload and then send files. This was in .Net 1.0 and there was no way to do this in-memory on the server. You had to do a temporary store->attach->send->delete.
This is was due to the fact that the Attachment class only worked with a file on disk. In 2.0 this has been updated so you can use an inputStream. So now attaching the uploaded files from a web page to a System.Net.Mail.MailMessage is as easy as:
public void AddUploadFilestoMessage(MailMessage msMessage)
{
System.Web.HttpFileCollection httpfiles = System.Web.HttpContext.Current.Request.Files;
Attachment mailAttachment;
if (httpfiles.Count != 0)
{
for (int iFile = 0; iFile < httpfiles.Count; iFile++)
{
System.Web.HttpPostedFile postedFile = httpfiles[iFile];
if (!(postedFile.FileName == ""))
{
String[] FileNameArr = postedFile.FileName.Split(@"\".ToCharArray());
mailAttachment = new Attachment(postedFile.InputStream, FileNameArr[FileNameArr.GetUpperBound(0)], postedFile.ContentType);
msMessage.Attachments.Add(mailAttachment);
}
}
}
}
This is was due to the fact that the Attachment class only worked with a file on disk. In 2.0 this has been updated so you can use an inputStream. So now attaching the uploaded files from a web page to a System.Net.Mail.MailMessage is as easy as:
public void AddUploadFilestoMessage(MailMessage msMessage)
{
System.Web.HttpFileCollection httpfiles = System.Web.HttpContext.Current.Request.Files;
Attachment mailAttachment;
if (httpfiles.Count != 0)
{
for (int iFile = 0; iFile < httpfiles.Count; iFile++)
{
System.Web.HttpPostedFile postedFile = httpfiles[iFile];
if (!(postedFile.FileName == ""))
{
String[] FileNameArr = postedFile.FileName.Split(@"\".ToCharArray());
mailAttachment = new Attachment(postedFile.InputStream, FileNameArr[FileNameArr.GetUpperBound(0)], postedFile.ContentType);
msMessage.Attachments.Add(mailAttachment);
}
}
}
}
0 Comments:
Post a Comment
<< Home