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
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.