How to read input from HTML file type in C # ASP.NET without using ASP.NET server-side control

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 collection of files, it is empty.

 HttpFileCollection Files = HttpContext.Current.Request.Files; 

How to read the contents of a downloaded file without using ASP.NET server-side management?

+6
html c # file-upload
source share
2 answers

Why you need to get currect httpcontext, just use page 1, 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))); } } 

Sample code from Uploading files to ASP.net without using the FileUpload control server

Btw, you do not need to use button control on the server side. You can add the above code to the loading page, where you check if the current state is a postback.

Good luck

+6
source share

Here is my final decision. Attach a 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(" emailaddress@emailaddress.com ", "name"), new MailAddress(" emailaddress@emailaddress.com ", "name")); msg.Subject = "Test"; msg.Body = "Test"; msg.IsBodyHtml = true; msg.Attachments.Add(myAttachment); SmtpClient client = new SmtpClient("smtp"); client.Send(msg); } 
0
source share

All Articles