I have the following form
<form id="upload" method="post" EncType="Multipart/Form-Data" action="reciver.aspx">
<input type="file" id="upload" name="upload" /><br/>
<input type="submit" id="save" class="button" value="Save" />
</form>
When I look at the file collection it is empty.
HttpFileCollection Files = HttpContext.Current.Request.Files;
How do I read the uploaded file content without using ASP.NET server side control?
Why do you need to get the currect httpcontext, just use the page's one, look at this example:
//aspx
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" id="myFile" name="myFile" />
<asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>
//c#
protected void btnUploadClick(object sender, EventArgs e)
{
HttpPostedFile file = Request.Files["myFile"];
if (file != null && file.ContentLength )
{
string fname = Path.GetFileName(file.FileName);
file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
}
}
The example code is from Uploading Files in ASP.net without using the FileUpload server control
Btw, you don't need to use a server side button control. You can add the above code to the page load where you check if the current state is a postback.
Good luck!
Here is my final solution. Attaching the file to an email.
//Get the files submitted form object
HttpFileCollection Files = HttpContext.Current.Request.Files;
//Get the first file. There could be multiple if muti upload is supported
string fileName = Files[0].FileName;
//Some validation
if(Files.Count == 1 && Files[0].ContentLength > 1 && !string.IsNullOrEmpty(fileName))
{
//Get the input stream and file name and create the email attachment
Attachment myAttachment = new Attachment(Files[0].InputStream, fileName);
//Send email
MailMessage msg = new MailMessage(new MailAddress("[email protected]", "name"), new MailAddress("[email protected]", "name"));
msg.Subject = "Test";
msg.Body = "Test";
msg.IsBodyHtml = true;
msg.Attachments.Add(myAttachment);
SmtpClient client = new SmtpClient("smtp");
client.Send(msg);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With