Is it possible to send to an html a memorystream, like a file?
The idea is not creating a file in the hard drive.
I have created the stream and I can donwload the file no problem, the problem is passing to the variable to send to the aspx page so I can use it to show the file on a particulary div.
Is it possible? without creating a file in the disk.
Best Regards and Thanks
this is the Code i have:
        public string ExportMemoryPdf(DataTable dtpdf, String Path)
    {
        string User = System.Web.HttpContext.Current.User.Identity.Name.ToString();
        string Date = DateTime.Now.ToString();
        string Year = DateTime.Now.ToString("yyyy");
        string Month = DateTime.Now.ToString("MM");
        string Day = DateTime.Now.ToString("dd");
        string Hour = DateTime.Now.ToString("hh");
        string Minutes = DateTime.Now.ToString("mm");
        string Seconds = DateTime.Now.ToString("ss");
        string FileName = User + Day + Month + Year + Hour + Minutes + Seconds;
        //Session["WhereIsIt"].ToString()
        //-----------------------Chamada de Classe de Registo de Eventos--------------------------
        //string Message = "The User Asked For a PDF File From the Table" + Request.QueryString["Position"] + "With the Filename: " + FileName;
        string Message = "The User Asked For a PDF File From the Table With the Filename: " + FileName;
        //OneGrid.ExportSettings.IgnorePaging = true;
        //OneGrid.Rebind();
        //RegisterFile.AddRegistry(User, Message, "Message");
        //------------------------------ Variaveis para aceder a Tabela --------------------------
        int columncount = dtpdf.Columns.Count;
        int rowcount = dtpdf.Rows.Count;
        //-------------------------------Iniciaçao de criação do documento -----------------------
        Document pdf1 = new Document(PageSize.A4_LANDSCAPE.Rotate());
        using (MemoryStream output = new MemoryStream())
        {
            pdf1.SetMargins(0, 0, 80, 50);
            iTextSharp.text.Font font20 = iTextSharp.text.FontFactory.GetFont(iTextSharp.text.FontFactory.HELVETICA, 10);
            //----------------------------------Preparação da Tabela ---------------------------------
            PdfPTable table = new PdfPTable(columncount);
            //-----------------------------------Criação de Ficheiro ---------------------------------
            string path = System.Web.HttpContext.Current.Server.MapPath(Path);
            //string path = System.IO.Path.GetTempPath();
            //Label1.Text = path.ToString();
            //PdfWriter pdfWriter = PdfWriter.GetInstance(pdf1, new FileStream(path + "/" + FileName + ".pdf", FileMode.Create));
            PdfWriter pdfWriter = PdfWriter.GetInstance(pdf1, output);
            //----------------------------------- Dimensões da Tabela ---------------------------------------
            table.WidthPercentage = 90;
            //-------------------------------Criação do Header e Footer de cada folha-------------------------
            KIOSK.Classes.Header_Footer page = new Classes.Header_Footer();
            //-----------------------------------Inserção de conteudos -------------------------------
            pdfWriter.PageEvent = page;
            pdf1.Open();
            //table.AddCell(HttpContext.Current.Request.QueryString["position"].ToString());
            for (int z = 0; z < columncount; z++)
            {
                var sabersenao = dtpdf.Columns[z].ToString();
                table.AddCell(new Phrase(sabersenao, font20));
            }
            for (int u = 0; u < rowcount; u++)
            {
                int contador = 0;
                while (contador < columncount)
                {
                    var CamposCorrigidos = dtpdf.Rows[u].ItemArray[contador].ToString();
                    StringBuilder ConvPassword = new StringBuilder(CamposCorrigidos);
                    ConvPassword.Replace("&", string.Empty);
                    ConvPassword.Replace(" ", string.Empty);
                    string CamposCorrigidos2 = ConvPassword.ToString();
                    table.AddCell(new Phrase(CamposCorrigidos2, font20));
                    contador += 1;
                }
            }
            //----------------------Abertura/Fecho e inserção do componentes necessrios ao pdf---------
            pdf1.Add(table);
            pdf1.Close();
            //System.Web.HttpContext.Current.Response.ClearContent();
            //System.Web.HttpContext.Current.Response.ClearHeaders();
            //System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
            //System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName);
            //System.Web.HttpContext.Current.Response.BinaryWrite(output.ToArray());
            //System.Web.HttpContext.Current.Response.End();
            //System.Web.HttpContext.Current.Response.Flush();
            //System.Web.HttpContext.Current.Response.Clear();
            //System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
            //System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "PdfViewer; filename=" + FileName +".PDF");
            ////System.Web.HttpContext.Current.Response.AddHeader("content-length", output.Length.ToString());
            //System.Web.HttpContext.Current.Response.BinaryWrite(output.ToArray());
            //System.Web.HttpContext.Current.Response.End();
            //output.Read(pdfByte, 0, (int)pdfByte.Length);
            output.Read(pdfByte, 0, (int)pdfByte.Length); 
            var strBase64 = Convert.ToBase64String(pdfByte);
        }
        return Convert.ToBase64String(pdfByte);
    }
and the error:
Cannot access a closed Stream.
thansk
 
     
     
    