Question

Need help to convert code from asp control to input type to fetch file name and file bytes.
Below are the code with asp control.
ascx Page:


 <asp:FileUpload ID="fileUp" runat="server" EnableViewState="true" class="tdFileUpload" />

ascx.cs code is given below


 using (SPSite site = new SPSite(siteId))
                    {
                        using (SPWeb web = site.OpenWeb(WebId))
                        {
                            web.AllowUnsafeUpdates = true;
                            string siteurl = SPContext.Current.Web.Url;
                            SPDocumentLibrary library;
                            library = (SPDocumentLibrary)web.Lists["Project_Artifacts"]; /fetches the library list name.
                            library.EnableVersioning = true;
                            library.Update();
                            SPFolder folder = web.Folders.Add(siteurl + "/Project_Artifacts/" + drpPrj.SelectedItem.Value);//creates a folder of selected item name                                 

web.Update();//updates the web after creating the folder folder.Files.Add(folder.Url + "/" + fileUp.FileName, fileUp.FileBytes); // I WANT TO CHANGE THIS LINE OF CODE as per my new requirement how do i get these two values in these two mentioned places 1. fileUp.FileName 2. fileUp.FileBytes

                            folder.Update();
                            web.Update();
    }
    }

The current requirement is : 
ascx page code:


   <div id="FileUpload">
                                                                <input type="file" size="24" id="fileUp"
                                                                 onchange="getElementById('FileField').value = getElementById('fileUp').value;" />
                                                                 <div id="BrowserVisible">
                                                                    <input type="text" id="FileField" name="FileField1"/>

Hope you can figure out the ascx page code difference.
ascx.cs Page code:

folder.Files.Add(folder.Url + "/" + fileUp.FileName, fileUp.FileBytes);

I want to change this line of code with the correct line of code which i am unable to do.
Please help.Thanks in advance
Was it helpful?

Solution

Hi I got the answer for it. Replace

folder.Files.Add(folder.Url + "/" + fileUp.FileName, fileUp.FileBytes);

to

string fileFieldPathValue = Request.Form["fileFieldPath"].ToString(); 
string fileName = System.IO.Path.GetFileName(fileFieldPathValue); 
var bytes = System.IO.File.ReadAllBytes(fileFieldPathValue); 
folder.Files.Add(folder.Url + "/" + fileName, bytes); 

For me it worked perfectly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top