The screen shot below is from an ASP.NET Upload control that was used to load files to a database. The grid below the control shows what items were uploaded.
![](../../../../../imagec40d.html?picture=2011%2f7%2fASP_UPLOAD_CONTROL.png)
On another page I list all the documents that were load for the user to select to print.
![](../../../../../imagefde0.html?picture=2011%2f7%2fPRINT_DOCUMENTS.png)
Code to take the uplaoded file and make it into a Byte Array. The variable DocumentOBJ contains the uploaded file which can then be saved to the database. Note: If you save the object to the database you need to save the FileType which can be pulled from the FileUpload.PostedFile.FileType property.
The code below takes the object above (or from a table) and renders it to the browser to open.
-- Get byte array from uploaded file
byte[] DocumentOBJ = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile uploadedImage = FileUpload1.PostedFile;
FileUpload1.PostedFile.InputStream.Read(DocumentOBJ, 0, FileUpload1.PostedFile.ContentLength);
public static void RenderObjectToBrowser(string fileName, string fileType, byte[] obj)
{
HttpContext CTX = HttpContext.Current;
//Get the Proposal Row
AQP.DAL.Proposal prop = new DAL.Proposal();
AQP.DAL.dsProposal.QP_MASTERRow row = prop.GetProposalMasterRow(1011, 1);
MemoryStream MemStream = new MemoryStream(obj);
CTX.Response.ContentType = fileType;
CTX.Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
CTX.Response.AddHeader("Content-Length", MemStream.Length.ToString());
//CTX.Response.Clear();
//CTX.Response.Buffer = true;
CTX.Response.BinaryWrite(obj.ToArray());
}