BinaryWrite() 공개 메소드

public BinaryWrite ( byte buffer ) : void
buffer byte
리턴 void
예제 #1
0
 /// <summary>
 /// 发送PDF文件回浏览器端
 /// </summary>
 /// <param name="fileName"></param>
 /// <param name="ms"></param>
 /// <param name="encoding"></param>
 public static void SendFile(string fileName, MemoryStream ms, Encoding encoding = null)
 {
     fileName = (fileName + "").Replace(" ", "");
     encoding = encoding ?? Encoding.UTF8;
     if (ms != null && !string.IsNullOrEmpty(fileName))
     {
         System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
         response.Clear();
         response.Charset = encoding.BodyName;// "utf-8";
         if (!HttpContext.Current.Request.UserAgent.Contains("Firefox") && !HttpContext.Current.Request.UserAgent.Contains("Chrome"))
         {
             fileName = HttpUtility.UrlEncode(fileName, encoding);
         }
         response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
         //为了解决打开,导出NPOI生成的xlsx文件时,提示发现不可读取内容。
         if (!(fileName + "").ToLower().EndsWith(".xlsx"))
         {
             response.AddHeader("Content-Type", "application/octet-stream");
             response.BinaryWrite(ms.GetBuffer());
         }
         else
         {
             response.BinaryWrite(ms.ToArray());
         }
         ms.Close();
         ms = null;
         response.Flush();
         response.End();
     }
 }
예제 #2
0
        public void GetImage(HttpResponse reponse, int id)
        {
            using (SqlConnection connection = new SqlConnection("Data Source=DESKTOP-5A9RHHB;Initial Catalog=EcommerceSimplifie; Integrated Security=True"))
            {
                //try
                //{
                SqlCommand command = new SqlCommand("select Picture.PictureBinary, Picture.MimeType from Picture inner join Product_Picture_Mapping on Picture.Id = Product_Picture_Mapping.PictureId where ProductId = @id and DisplayOrder = 1;");
                command.Connection = connection;
                command.Parameters.Add(new SqlParameter("@id", id));

                connection.Open();

                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {

                    //type de l'image
                    string typeMime = reader.GetString(1);
                    reponse.ContentType = (string.IsNullOrEmpty(typeMime)) ? "image/jpeg" : typeMime;

                    //mise en cache
                    reponse.Cache.SetCacheability(HttpCacheability.Public);

                    int indexDepart = 0;
                    int tailleBuffer = 1024;
                    long nombreOctets = 0;
                    Byte[] flux = new Byte[1024];

                    nombreOctets = reader.GetBytes(0, indexDepart, flux, 0, tailleBuffer);

                    while (nombreOctets == tailleBuffer)
                    {
                        reponse.BinaryWrite(flux);
                        reponse.Flush();
                        indexDepart += tailleBuffer;
                        nombreOctets = reader.GetBytes(0, indexDepart, flux, 0, tailleBuffer);
                    }
                    if (nombreOctets > 0)
                    {
                        reponse.BinaryWrite(flux);
                        reponse.Flush();
                    }
                    reponse.End();

                }
                //catch(Exception)
                //{
                //    throw new Exception("Pas d'image disponible.");
                //}
                //}
            }
        }
예제 #3
0
        /// <summary>
        /// Exports in csv format.
        /// </summary>
        /// <param name="txtString"></param>
        /// <param name="filename"></param>
        public static void ExportCSV(string txtString, string filename)
        {
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.Charset = "utf-16";
            response.AddHeader("Content-Type", "text/csv");
            response.AddHeader("content-disposition", String.Format("attachment; filename={0}", filename));

            System.IO.StringWriter s = new System.IO.StringWriter();
            response.BinaryWrite(new byte[] { 0xff, 0xfe });
            response.BinaryWrite(Encoding.Unicode.GetBytes(txtString));
            response.End();
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            HtmlToPdf.Options.PageSize   = PdfPageSizes.A4;// new SizeF(PdfPageSizes.A4.Height, PdfPageSizes.A4.Width);
            HtmlToPdf.Options.OutputArea = new RectangleF(0.05f, 0.07f, 8.17f, 12f);



            MemoryStream ms       = new MemoryStream();
            string       fileName = "ANGLO-EASTERN SHIP MANAGEMENT";
            var          watch    = System.Diagnostics.Stopwatch.StartNew();

            HtmlToPdf.ConvertUrl("D:\\" + fileName + ".html", ms);
            watch.Stop();
            //HtmlToPdf.ConvertUrl("D:\\HtmlContentForPdf.html", "D:\\result.pdf");
            byte[] bPDFBytes          = ms.ToArray();
            var    timeTakenToConvert = watch.ElapsedMilliseconds;

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "application/pdf");
            response.AddHeader("Content-Disposition", "attachment; filename=Eo_" + fileName + "_" + timeTakenToConvert + ".pdf; size=" + bPDFBytes.Length.ToString());
            response.Flush();
            response.BinaryWrite(bPDFBytes);
            response.Flush();
            response.End();
        }
예제 #5
0
        /// <summary>
        /// 根据所选文件打包下载
        /// 编写日期:2018/2/22
        /// 编写人:郑亚波
        /// </summary>
        /// <param name="response"></param>
        /// <param name="files"></param>
        /// <param name="zipFileName"></param>
        public void Download(System.Web.HttpResponse response, IEnumerable <string> files, string zipFileName)
        {
            //根据所选文件打包下载
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            byte[] buffer             = null;
            using (ICSharpCode.SharpZipLib.Zip.ZipFile file = ICSharpCode.SharpZipLib.Zip.ZipFile.Create(ms))
            {
                file.BeginUpdate();
                file.NameTransform = new MyNameTransfom();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。

                foreach (var item in files)
                {
                    if (System.IO.File.Exists(item.ToString()))
                    {
                        file.Add(item);
                    }
                }
                file.CommitUpdate();
                buffer      = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(buffer, 0, buffer.Length);
            }
            response.AddHeader("content-disposition", "attachment;filename=" + zipFileName);
            response.BinaryWrite(buffer);
            response.Flush();
            response.End();
        }
예제 #6
0
        //defaultfile is under userpath
        public static void GetImageFromFile(string filename,string defaultfile,HttpResponse response)
        {
            if (!File.Exists(filename))
            {
                string userdatapath = Functions.GetAppConfigString("UserDataPath", "");
                filename = userdatapath + "\\"+defaultfile;
            }

            System.IO.FileStream fs = null;
            System.IO.MemoryStream ms = null;
            try
            {

                fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Close();

                ms = new System.IO.MemoryStream(buffer);

                response.ClearContent();
                response.BinaryWrite(ms.ToArray());
                ms.Close();

            }
            finally
            {
                fs.Dispose();
                ms.Dispose();

            }
        }
예제 #7
0
        public static void ExportGridViewToExcel(string strFileName, DataTable dt, System.Web.HttpResponse response)
        {
            System.IO.StringWriter             tw     = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter       hw     = new System.Web.UI.HtmlTextWriter(tw);
            System.Web.UI.WebControls.DataGrid dgGrid = new System.Web.UI.WebControls.DataGrid();
            dgGrid.DataSource = dt;
            dgGrid.DataBind();

            //Get the HTML for the control.


            dgGrid.RenderControl(hw);

            ////Write the HTML back to the browser.
            ////Response.ContentType = application/vnd.ms-excel;
            //response.ContentType = "application/vnd.ms-excel";
            //response.AppendHeader("Content-Disposition", "attachment; filename=" + strFileName + ".xls");
            //response.Write(tw.ToString());
            //response.End();


            byte[] bytes = System.Text.Encoding.Default.GetBytes(tw.ToString());
            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            response.Buffer = true;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.ContentType     = "application/vnd.ms-excel";
            response.ContentEncoding = System.Text.Encoding.Unicode;
            response.AddHeader("content-disposition", "attachment; filename=" + strFileName + ".xls");
            response.BinaryWrite(bytes); // create the file
            response.End();              // send it to the client to download
        }
예제 #8
0
        /// <summary>
        /// Create MS-Report
        /// </summary>
        /// <param name="reportPath">string path</param>
        /// <param name="reportType">PDF,Excel</param>
        /// <param name="reportName">name of report</param>
        /// <param name="reportDataSource">Data source report</param>
        /// <param name="response">HttpResponse</param>
        public static void ExportMSReport(string reportPath, string reportType, string reportName, ReportDataSource reportDataSource, System.Web.HttpResponse response)
        {
            // Variables
            Warning[] warnings;
            string[]  streamIds;
            string    mimeType  = string.Empty;
            string    encoding  = string.Empty;
            string    extension = string.Empty;

            // Setup the report viewer object and get the array of bytes
            ReportViewer viewer = new ReportViewer();

            viewer.ProcessingMode = ProcessingMode.Local;
            viewer.LocalReport.DataSources.Add(reportDataSource);
            viewer.LocalReport.ReportPath = reportPath;

            byte[] bytes = viewer.LocalReport.Render(reportType, null, out mimeType, out encoding, out extension, out streamIds, out warnings);

            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            response.Buffer = true;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.ContentType     = mimeType;
            response.ContentEncoding = System.Text.Encoding.UTF8;
            response.AddHeader("content-disposition", "attachment; filename=" + reportName + "." + extension);
            response.BinaryWrite(bytes); // create the file
            response.End();              // send it to the client to download
        }
        protected void btnPDF_Click222(object sender, EventArgs e)
        {
            string downloadName = "Report";

            byte[] downloadBytes = null;
            downloadName += ".pdf";
            PdfConverter pdfConverter = new PdfConverter();

            pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
            pdfConverter.PdfStandardSubset = PdfStandardSubset.Full;
            pdfConverter.PdfDocumentOptions.AutoSizePdfPage = true;
            pdfConverter.PdfDocumentOptions.EmbedFonts      = true;
            pdfConverter.PdfDocumentOptions.BottomMargin    = 80;
            pdfConverter.PdfDocumentOptions.TopMargin       = 50;

            string url = string.Format("http://{0}/ExamOnline/ExamPaperStorage/ExamPaperView.aspx?epid=39&isPdf=1", Request.Url.Host);

            downloadBytes = pdfConverter.GetPdfBytesFromUrl(url);

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "binary/octet-stream");
            response.AddHeader("Content-Disposition",
                               "attachment; filename=" + downloadName + "; size=" + downloadBytes.Length.ToString());
            response.Flush();
            response.BinaryWrite(downloadBytes);
            response.Flush();
            response.End();
        }
예제 #10
0
 public void Process(HttpResponse response)
 {
     response.AppendHeader("Last-Modified", serverFingerprint.LastModifiedTime.ToString("r"));
     response.AppendHeader("ETag", serverFingerprint.ETag);
     response.AppendHeader("Cache-Control", "private, max-age=0");
     response.BinaryWrite(content);
 }
예제 #11
0
        public void Genratepdf1(string str_Url, string filename)
        {
            try
            {
                string temp_path = "";

                PdfConverter pdfConverter_Transcrpit = new PdfConverter();
                string       temp1 = "";
                pdfConverter_Transcrpit.LicenseKey = "eVJIWUtLWUtZTFdJWUpIV0hLV0BAQEA=";

                PdfDocumentOptions docopt = new PdfDocumentOptions();
                pdfConverter_Transcrpit.PageWidth  = 1100;
                pdfConverter_Transcrpit.PageHeight = 500;
                byte[] downloadBytes = pdfConverter_Transcrpit.GetPdfFromUrlBytes(str_Url);
                pdfConverter_Transcrpit.SavePdfFromUrlToFile(str_Url, "D:\\LMS2.0Final\\LMS\\ABN\\pdfs\\test1.pdf");
                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
                response.Clear();
                response.AddHeader("Content-Type", "binary/octet-stream");
                response.AddHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf" + "; size=" + downloadBytes.Length.ToString());
                response.Flush();
                response.BinaryWrite(downloadBytes);
                response.Flush();
                response.End();
            }
            catch (Exception EX)
            {
                //return "";
                throw EX;
            }
        }
예제 #12
0
        /// <summary>
        /// Create an Excel file, and write it out to a MemoryStream (rather than directly to a file)
        /// </summary>
        /// <param name="ds">DataSet containing the data to be written to the Excel.</param>
        /// <param name="filename">The filename (without a path) to call the new Excel file.</param>
        /// <param name="Response">HttpResponse of the current page.</param>
        /// <returns>Either a MemoryStream, or NULL if something goes wrong.</returns>
        public static bool CreateExcelDocumentAsStream(DataSet ds, string filename, System.Web.HttpResponse Response)
        {
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            using (SpreadsheetDocument document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook, true))
            {
                WriteExcelFile(ds, document);
            }
            stream.Flush();
            stream.Position = 0;

            Response.ClearContent();
            Response.Clear();
            Response.Buffer  = true;
            Response.Charset = "";

            //  NOTE: If you get an "HttpCacheability does not exist" error on the following line, make sure you have
            //  manually added System.Web to this project's References.

            Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
            Response.AddHeader("content-disposition", "attachment; filename=" + filename);
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            byte[] data1 = new byte[stream.Length];
            stream.Read(data1, 0, data1.Length);
            stream.Close();
            Response.BinaryWrite(data1);
            Response.Flush();


            return(true);
        }
예제 #13
0
        /// <summary>
        /// Writes the result directly into the response stream, e.g. for a classic ASP.NET response
        /// </summary>
        /// <param name="response">A standard HttpResponse object</param>
        /// <param name="result">An IBackloadResult object</param>
        public static void Write(HttpResponse response, IBackloadResult result)
        {

            response.StatusCode = (int)result.HttpStatusCode;
            if ((int)result.HttpStatusCode < 300)
            {

                // Write result to the response (Json or file data, default: Json response)
                if (result.RequestType == RequestType.Default)
                {
                    // Json response (We use the systems JavaScriptSerializer, you can also use Newtonsoft.Json)
                    IFileStatusResult status = (IFileStatusResult)result;
                    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();

                    if ((status.ClientStatus != null) && (result.Exception == null))
                        response.Write(serializer.Serialize(status.ClientStatus));
                }
                else if ((result.RequestType == RequestType.File) || (result.RequestType == RequestType.Thumbnail))
                {
                    // file data (byte array) response
                    IFileDataResult data = (IFileDataResult)result;

                    if ((data.FileData != null) && (result.Exception == null))
                        response.BinaryWrite(data.FileData);
                }
            }
        }
예제 #14
0
        public bool ReturnXlsBytes(System.Web.HttpResponse resp, byte[] data, string fileName)
        {
            resp.ClearHeaders();
            resp.ClearContent();

            DialogUtils.SetCookieResponse(resp);

            resp.HeaderEncoding = System.Text.Encoding.Default;
            resp.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
            resp.AddHeader("Content-Length", data.Length.ToString());
            resp.ContentType = "application/octet-stream";
            resp.Cache.SetCacheability(HttpCacheability.NoCache);

            /*
             * resp.BufferOutput = false;
             * resp.WriteFile(f.FullName);
             * resp.Flush();
             * resp.End();
             */

            resp.BufferOutput = true;
            resp.BinaryWrite(data);
            //resp.End();
            return(true);
        }
예제 #15
0
        /// <summary>
        /// Datatable数据填充如excel
        /// </summary>
        /// <param name="filename">excel文件名</param>
        /// <param name="dt"> 数据源</param>
        /// <param name="Response"> response响应</param>
        ///  <param name="headerStr"> 表头标题</param>
        public static void DataTableToExcel(string filename, DataTable dt, string sheetname, HttpResponse Response, string headerStr)
        {
            MemoryStream ms = StreamData(dt, sheetname, headerStr) as MemoryStream; //as MemoryStream  as用作转换,此处可以省略
            try
            {

                Response.Clear();
                Response.ContentType = "application/vnd.ms-excel";
                Response.ContentEncoding = Encoding.UTF8;
                Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(filename + ".xls"));
                Response.AddHeader("content-length", ms.Length.ToString());
                Byte[] data = ms.ToArray(); //文件写入采用二进制流的方式。所以此处要转换为字节数组
                Response.BinaryWrite(data);
            }
            catch
            {
                Response.Clear();
                Response.ClearHeaders();
                Response.Write("<script language=javascript>alert( '导出Excel错误'); </script>");
            }
            Response.Flush();
            Response.Close();
            Response.End();
            ms = null;
        }
예제 #16
0
        public static void ExportToExcel(DataTable dt, string fileName)
        {
            System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
            Response.ContentType = "application/csv";
            Response.Charset     = "";
            Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
            Response.ContentEncoding = Encoding.Unicode;
            Response.BinaryWrite(Encoding.Unicode.GetPreamble());
            DataTable dtb = dt;

            try
            {
                StringBuilder sb = new StringBuilder();
                //Tạo dòng tiêu để cho bảng tính
                for (int count = 0; count < dtb.Columns.Count; count++)
                {
                    if (dtb.Columns[count].ColumnName != null)
                    {
                        sb.Append(dtb.Columns[count].ColumnName);
                    }
                    if (count < dtb.Columns.Count - 1)
                    {
                        sb.Append("\t");
                    }
                }
                Response.Write(sb.ToString() + "\n");
                Response.Flush();
                //Duyệt từng bản ghi
                int soDem = 0;
                while (dtb.Rows.Count >= soDem + 1)
                {
                    sb = new StringBuilder();


                    for (int col = 0; col < dtb.Columns.Count - 1; col++)
                    {
                        if (dtb.Rows[soDem][col] != null)
                        {
                            sb.Append(dtb.Rows[soDem][col].ToString().Replace(",", " "));
                        }
                        sb.Append("\t");
                    }
                    if (dtb.Rows[soDem][dtb.Columns.Count - 1] != null)
                    {
                        sb.Append(dtb.Rows[soDem][dtb.Columns.Count - 1].ToString().Replace(",", " "));
                    }


                    Response.Write(sb.ToString() + "\n");
                    Response.Flush();
                    soDem = soDem + 1;
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            dtb.Dispose();
            Response.End();
        }
예제 #17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            List <EvaluacionEntidades.Empleados> list;
            if (!string.IsNullOrEmpty(Request.QueryString["idadmin"]))
            {
                DateTime?inicio = null;
                if (!string.IsNullOrEmpty(Request.QueryString["inicio"]))
                {
                    inicio = DateTime.Parse(Request.QueryString["inicio"]);
                }
                DateTime?fin = null;
                if (!string.IsNullOrEmpty(Request.QueryString["fin"]))
                {
                    fin = DateTime.Parse(Request.QueryString["fin"]);
                }
                int?idSuper = null;
                if (!string.IsNullOrEmpty(Request.QueryString["supervisorid"]))
                {
                    idSuper = int.Parse(Request.QueryString["supervisorid"]);
                }
                list = EvaluacionBL.EmpleadosBL.GetEmpleadoAdmin(int.Parse(Request.QueryString["idadmin"]), Request.QueryString["pais"], inicio, fin, Request.QueryString["departamento"], Request.QueryString["estado"], idSuper);
            }
            else
            {
                list = EvaluacionBL.EmpleadosBL.GetEmpleadosSupervisados(int.Parse(Request.QueryString["idSupervisor"]));
            }
            if (list != null && list.Count > 0)
            {
                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
                response.Clear();
                response.ClearContent();
                response.ClearHeaders();

                //Tipo de contenido para forzar la descarga
                response.ContentType    = "application/octet-stream";
                Response.HeaderEncoding = System.Text.Encoding.Default;
                response.AddHeader("Content-Disposition", "attachment; filename=" + "EmpleadosDesempeño.xlsx");
                System.IO.MemoryStream grilla = Helpers.funcionesGenerales.ConvierteCSVEmpleados(list);
                // System.Text.Encoding encoding = new System.Text.UTF8Encoding();
                // byte[] bufferAux = grilla.ToArray();
                // byte[] buffer;
                //System.Text.Encoding utf8 = new System.Text.UTF8Encoding();
                // System.Text.Encoding win1252 = System.Text.Encoding.GetEncoding(1252);
                // buffer = System.Text.Encoding.Convert(utf8,win1252,bufferAux);
                //while (mContador < grilla.Length)
                //{
                //    buffer[mContador] = Chr grilla.Substring(mContador,1) Strings.Asc(Strings.Mid(pCSV, mContador + 1, 1));
                //    mContador = mContador + 1;
                //}

                //Envia los bytes
                response.BinaryWrite(grilla.ToArray());
                response.End();
            }
        }
        catch (Exception ex)
        { }
    }
예제 #18
0
 public static bool DownFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
 {
     try
     {
         FileStream input = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
         BinaryReader reader = new BinaryReader(input);
         try
         {
             _Response.AddHeader("Accept-Ranges", "bytes");
             _Response.Buffer = false;
             long length = input.Length;
             long num2 = 0L;
             int count = 0x2800;
             double d = ((long) (0x3e8 * count)) / _speed;
             int millisecondsTimeout = ((int) Math.Floor(d)) + 1;
             if (_Request.Headers["Range"] != null)
             {
                 _Response.StatusCode = 0xce;
                 num2 = Convert.ToInt64(_Request.Headers["Range"].Split(new char[] { '=', '-' })[1]);
             }
             _Response.AddHeader("Content-Length", (length - num2).ToString());
             if (num2 != 0L)
             {
                 _Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", num2, length - 1L, length));
             }
             _Response.AddHeader("Connection", "Keep-Alive");
             _Response.ContentType = "application/octet-stream";
             _Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, Encoding.UTF8));
             reader.BaseStream.Seek(num2, SeekOrigin.Begin);
             double num6 = (length - num2) / ((long) count);
             int num7 = ((int) Math.Floor(num6)) + 1;
             for (int i = 0; i < num7; i++)
             {
                 if (_Response.IsClientConnected)
                 {
                     _Response.BinaryWrite(reader.ReadBytes(count));
                     Thread.Sleep(millisecondsTimeout);
                 }
                 else
                 {
                     i = num7;
                 }
             }
         }
         catch
         {
             return false;
         }
         finally
         {
             reader.Close();
             input.Close();
         }
     }
     catch
     {
         return false;
     }
     return true;
 }
예제 #19
0
        public void ExportTableData(DataTable dt)
        {
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            string attach = "attachment;filename=" + formName + ".xls";

            response.ClearContent();
            response.AddHeader("content-disposition", attach);
            response.ContentType     = "application/ms-excel";
            response.ContentEncoding = System.Text.Encoding.Unicode;
            response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());

            if (dt != null)
            {
                string tab = "";
                foreach (DataColumn dc in dt.Columns)
                {
                    response.Write(tab + dc.ColumnName);
                    tab = "\t";
                }
                response.Write(System.Environment.NewLine);
                foreach (DataRow dr in dt.Rows)
                {
                    tab = "";
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        response.Write(tab + dr[i].ToString().Replace("\n", " "));
                        tab = "\t";
                    }
                    response.Write("\n");
                }

                response.Flush();
                response.End();
            }
        }
예제 #20
0
        public void Genratepdftext(string text, string fname)
        {
            try
            {
                string temp_path = "";

                PdfConverter pdfConverter_Transcrpit = new PdfConverter();
                string       temp1 = "";
                pdfConverter_Transcrpit.LicenseKey = "eVJIWUtLWUtZTFdJWUpIV0hLV0BAQEA=";
                byte[] downloadBytes             = pdfConverter_Transcrpit.GetPdfBytesFromHtmlString(text);
                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
                response.Clear();
                response.AddHeader("Content-Type", "binary/octet-stream");
                response.AddHeader("Content-Disposition", "attachment; filename=" + fname + ".pdf" + "; size=" + downloadBytes.Length.ToString());
                response.Flush();
                response.BinaryWrite(downloadBytes);
                response.Flush();
                response.End();
            }
            catch (Exception EX)
            {
                //return "";
                throw EX;
            }
        }
예제 #21
0
    //输出图像
    private void Output(Chart OutputChart)
    {
        MemoryStream MS = new MemoryStream();

        OutputChart.SaveImage(MS, ChartImageFormat.Png);
        MS.Seek(0, System.IO.SeekOrigin.Begin);
        Response.ContentType = "application/octet-stream";
        Response.BinaryWrite(MS.ToArray());
    }
예제 #22
0
파일: Tools.cs 프로젝트: Artikid/Test
 public static void DownloadFile(System.Web.HttpResponse Response, string filePath)
 {
     Byte[] file = File.ReadAllBytes(filePath);
     File.Delete(filePath);
     Response.ContentType = "documento/" + Path.GetExtension(filePath).ToUpper();
     Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
     Response.BinaryWrite(file);
     Response.End();
 }
예제 #23
0
        public void Genratepdftext(string url)
        {
            try
            {
                string temp_path = "";

                PdfConverter pdfobj = new PdfConverter();
                string       temp1  = "";
                pdfobj.LicenseKey = "eVJIWUtLWUtZTFdJWUpIV0hLV0BAQEA=";
                pdfobj.PdfDocumentOptions.ShowHeader = false;
                pdfobj.PdfDocumentOptions.ShowFooter = false;
                pdfobj.PdfDocumentInfo.AuthorName    = "Cyber Best Technologies";
                pdfobj.PdfDocumentInfo.Title         = "Pharmacy Board";
                pdfobj.PdfDocumentInfo.Subject       = "Certificate";
                if (Convert.ToInt32(Request.QueryString[0].ToString().Substring(1)) < 11 || Convert.ToInt32(Request.QueryString[0].ToString().Substring(1)) > 19)
                {
                    float width  = (8.50f / 1.0f) * 72f;
                    float height = (11 / 1.0f) * 72f;
                    pdfobj.PdfDocumentOptions.AutoSizePdfPage    = false;
                    pdfobj.PdfDocumentOptions.PdfPageSize        = PdfPageSize.Custom;
                    pdfobj.PdfDocumentOptions.CustomPdfPageSize  = new SizeF(width, height);
                    pdfobj.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;
                }
                else
                {
                    float width  = (11f / 1.0f) * 72f;
                    float height = (8.50f / 1.0f) * 72f;
                    pdfobj.PdfDocumentOptions.AutoSizePdfPage   = false;
                    pdfobj.PdfDocumentOptions.PdfPageSize       = PdfPageSize.Custom;
                    pdfobj.PdfDocumentOptions.CustomPdfPageSize = new SizeF(width, height);

                    pdfobj.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Landscape;
                }
                //pdfobj.PdfDocumentInfo.Keywords = "HTML, PDF,Converter";
                pdfobj.PdfDocumentInfo.CreatedDate = DateTime.Now;

                byte[] downloadBytes             = pdfobj.GetPdfBytesFromUrl(url);
                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;

                response.Clear();
                // response.Flush();
                response.AddHeader("Content-Type", "binary/octet-stream");
                response.AddHeader("Content-Disposition", "attachment; filename=" + pname() + ".pdf; size=" + downloadBytes.Length.ToString());

                response.BinaryWrite(downloadBytes);
                PersonLicensing.Utilities_Licensing.GetCertficateJournal(Request.QueryString["refid"], pname().Replace("_", " "), Session["UID"].ToString());
                //   response.Flush();
                // response.End();
            }
            catch (Exception EX)
            {
                //return "";
                throw EX;
            }
        }
예제 #24
0
 public static void OutputExcel(System.Web.HttpServerUtility server, System.Web.HttpResponse response, string filename, MemoryStream ms)
 {
     byte[] bytes = ms.GetBuffer();
     response.Charset         = "UTF8";
     response.ContentEncoding = Encoding.UTF8;
     response.AddHeader("Content-Disposition",
                        "attachment; filename=" + server.UrlEncode(filename + ".xls"));
     response.ContentType = "application/vnd.ms-excel";
     response.BinaryWrite(bytes);
     response.End();
 }
 /// <summary>
 /// Sends the file to the response with content-length header
 /// Works with all types of files, not image specific
 /// </summary>
 /// <param name="response"></param>
 /// <param name="file"></param>
 /// <param name="mimetype"></param>
 private static void SendToResponse(HttpResponse response, byte[] fileContent, DateTime lastWriteTime, string mimetype)
 {
   response.ClearHeaders();
   setCacheHeaders(response);
   
   response.Cache.SetLastModified(lastWriteTime); // to avoid rounding problems with header (no millisecs there)
   response.ContentType = mimetype;      
   response.AppendHeader("Content-Length", fileContent.Length.ToString());
   response.BinaryWrite(fileContent);
   response.End();
 }
        public static bool ResponseFile(HttpRequest request, HttpResponse response, string fileName, string fullPath, long speed, string pageUrl)
        {
            FileStream myFile = new FileStream(fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            BinaryReader br = new BinaryReader(myFile);
            try
            {
                response.AddHeader("Accept-Ranges", "bytes");
                response.Buffer = false;
                long fileLength = myFile.Length;
                long startBytes = 0;

                const int pack = 10240;
                int sleep = (int)Math.Floor((double)(1000 * pack / speed)) + 1;
                if (request.Headers["Range"] != null)
                {
                    response.StatusCode = 206;
                    string[] range = request.Headers["Range"].Split(new[] { '=', '-' });
                    startBytes = Convert.ToInt64(range[1]);
                }
                response.AddHeader("Content-Length", (fileLength - startBytes).ToString());
                if (startBytes != 0)
                {
                    response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength));
                }
                response.AddHeader("Connection", "Keep-Alive");
                response.ContentType = "application/octet-stream";
                response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));

                br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
                int maxCount = (int)Math.Floor((double)((fileLength - startBytes) / pack)) + 1;

                for (int i = 0; i < maxCount; i++)
                {
                    if (response.IsClientConnected)
                    {
                        response.BinaryWrite(br.ReadBytes(pack));
                        Thread.Sleep(sleep);
                    }
                    else
                    {
                        i = maxCount;
                    }
                }
            }
            finally
            {
                br.Close();
                myFile.Close();
            }

            return true;
        }
예제 #27
0
        public void Genratepdftext1(string murl, string fname)
        {
            try
            {
                string temp_path = "";

                PdfConverter pdfobj = new PdfConverter();
                string temp1 = "";
                pdfobj.LicenseKey = "eVJIWUtLWUtZTFdJWUpIV0hLV0BAQEA=";
                pdfobj.PdfDocumentOptions.ShowHeader = false;
                pdfobj.PdfDocumentOptions.ShowFooter = false;
                string thisPageURL = HttpContext.Current.Request.Url.AbsoluteUri;
                thisPageURL = thisPageURL.Substring(0, thisPageURL.LastIndexOf('/'));
                string headerAndFooterHtmlUrl = thisPageURL.Substring(0, thisPageURL.LastIndexOf('/') + 1) + "Prints/header.htm";
                pdfobj.PdfHeaderOptions.HtmlToPdfArea = new HtmlToPdfArea(headerAndFooterHtmlUrl);

                //enable header
                AddFooter(pdfobj);
                // set the header height in points
                pdfobj.PdfHeaderOptions.DrawHeaderLine = true;
                pdfobj.PdfHeaderOptions.HeaderHeight = 150;
                pdfobj.PdfHeaderOptions.HeaderText = "";
                pdfobj.PdfHeaderOptions.HeaderSubtitleText = "";
                pdfobj.PdfDocumentOptions.EmbedFonts = true;
                pdfobj.PdfDocumentInfo.AuthorName = "Cyber Best Technologies";
                pdfobj.PdfDocumentInfo.Title = "Pharmacy Board";
                pdfobj.PdfDocumentInfo.Subject = "Print LMS Forms";
                //pdfobj.PdfDocumentInfo.Keywords = "HTML, PDF,Converter";
                pdfobj.PdfDocumentInfo.CreatedDate = DateTime.Now;
                float width = (8.50f / 1.0f) * 72f;
                float height = (11 / 1.0f) * 72f;
                pdfobj.PdfDocumentOptions.AutoSizePdfPage = false;
                pdfobj.PdfDocumentOptions.PdfPageSize = PdfPageSize.Custom;
                pdfobj.PdfDocumentOptions.CustomPdfPageSize = new SizeF(width, height);
                pdfobj.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;
                pdfobj.PdfDocumentOptions.LeftMargin = 10;
                pdfobj.PdfDocumentOptions.RightMargin = 10;
                byte[] downloadBytes = pdfobj.GetPdfBytesFromHtmlStream(GenerateStreamFromString(txtcomplaint.Text), System.Text.Encoding.Default);
                System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
                response.Clear();
                response.AddHeader("Content-Type", "binary/octet-stream");
                response.AddHeader("Content-Disposition", "attachment; filename=" + fname + ".pdf; size=" + downloadBytes.Length.ToString());

                response.BinaryWrite(downloadBytes);

            }
            catch (Exception EX)
            {
                //return "";
                throw EX;
            }
        }
예제 #28
0
        /// <summary>
        /// Generates a PDF document from the URL passed in, and returns to user in the HttpResponse (as a download)
        /// </summary>
        /// <param name="inUrl"></param>
        /// <param name="inPasswordProtectRandomly"></param>
        /// <param name="inOrientation"></param>
        /// <param name="inPageSize"></param>
        /// <param name="inServer">The requesting server (Page.Server when requested by an aspx or ascx page)</param>
        /// <param name="inFileName"></param>
        public static void GeneratePDFfromURL(string inUrl, bool inPasswordProtectRandomly, PDFPageOrientation inOrientation, PdfPageSize inPageSize, HttpServerUtility inServer, string inFileName)
        {
            // get the pdf bytes from html string
            byte[] downloadBytes = GetPDFfromURL(inUrl, inPasswordProtectRandomly, inOrientation, inPageSize, inServer);

            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "binary/octet-stream");
            response.AddHeader("Content-Disposition",
                               "attachment; filename=" + ((inFileName.Length > 0) ? inFileName : "Report") + ".pdf; size=" + downloadBytes.Length.ToString());

            response.BinaryWrite(downloadBytes);
        }
예제 #29
0
    public void Flush(System.Web.HttpResponse resp)
    {
        byte[] data1 = output.ToArray();

        if (!useGZip_ || data1.Length < 200)
        {
            finalOutLength = data1.Length;
            resp.BinaryWrite(data1);
            return;
        }

        // compress
        MemoryStream ms   = new MemoryStream();
        GZipStream   GZip = new GZipStream(ms, CompressionMode.Compress);

        GZip.Write(data1, 0, data1.Length);
        GZip.Close();

        // get compressed bytes
        byte[] data2 = ms.ToArray();
        ms.Close();

        // if compression failed (more data)
        if (data2.Length >= data1.Length)
        {
            finalOutLength = data1.Length;
            resp.BinaryWrite(data1);
            return;
        }

        resp.BufferOutput = true;
        resp.ContentType  = "application/octet-stream";
        resp.Write("$1");
        //resp.Write(string.Format("SIZE: {0} vs {1}<br>", data1.Length, data2.Length));

        finalOutLength = data2.Length;
        resp.BinaryWrite(data2);
        resp.Flush();
    }
예제 #30
0
        /// <summary>
        /// Export CSV File
        /// </summary>
        /// <param name="fileName">Name of file</param>
        /// <param name="dataSource">Data source report</param>
        /// <param name="response">HttpResponse</param>
        public static void ExportCSVFile(string fileName, DataTable dataSource, System.Web.HttpResponse response)
        {
            byte[] bytes;
            if ((dataSource.Rows.Count == 0))
            {
                string text = "";
                if (dataSource.Columns.Count != 0)
                {
                    text = dataSource.Columns[0].ColumnName;
                    for (int i = 1; i < dataSource.Columns.Count; i++)
                    {
                        text = string.Format("{0},{1}", text, dataSource.Columns[i].ColumnName);
                    }
                }
                text  = string.Format("{0}\r\n", text);
                bytes = System.Text.Encoding.UTF8.GetBytes(text);
            }
            else
            {
                string text = dataSource.Columns[0].ColumnName;
                for (int i = 1; i < dataSource.Columns.Count; i++)
                {
                    text = string.Format("{0},{1}", text, dataSource.Columns[i].ColumnName);
                }
                text = string.Format("{0}", text);

                for (int i = 0; i < dataSource.Rows.Count; i++)
                {
                    string txtStr = StripCommaCharArray(dataSource.Rows[i][0].ToString());
                    for (int j = 1; j < dataSource.Columns.Count; j++)
                    {
                        txtStr = string.Format("{0},{1}", txtStr, ReportUtil.StripAllTagsCharArray(StripCommaCharArray(dataSource.Rows[i][j].ToString())));
                    }
                    text   = string.Format("{0}\r\n{1}", text, txtStr);
                    txtStr = "";
                }

                text  = string.Format("{0}\r\n", text);
                bytes = System.Text.Encoding.UTF8.GetBytes(text);
            }
            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            response.Buffer = true;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.ContentType     = "text/csv";
            response.ContentEncoding = System.Text.Encoding.UTF8;
            response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".csv");
            response.BinaryWrite(bytes); // create the file
            response.End();              // send it to the client to download
        }
예제 #31
0
        public static void ToExcel(HttpResponse Response,DataTable dt , string fileName)
        {
            Response.ContentType = "application/csv";
            Response.Charset = "";
            Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
            Response.ContentEncoding = Encoding.Unicode;
            Response.BinaryWrite(Encoding.Unicode.GetPreamble());

            try
            {
                StringBuilder sb = new StringBuilder();

                //Add Header
                for (int count = 0; count < dt.Columns.Count - 1; count++)
                {
                    if (dt.Columns[count].ColumnName != null)
                        sb.Append(dt.Columns[count].ColumnName);
                    sb.Append("\t");
                }
                Response.Write(sb.ToString() + "\n");
                Response.Flush();

                //Append Data
                int index = 0;
                while (dt.Rows.Count >= index + 1)
                {
                    sb = new StringBuilder();

                    for (int col = 0; col < dt.Columns.Count -1; col++)
                    {
                        if (dt.Rows[index][col] != null)
                            //sb.Append(dt.Rows[index][col].ToString().Replace(",", " "));
                            sb.Append(dt.Rows[index][col].ToString());
                        sb.Append("\t");
                    }

                    Response.Write(sb.ToString() + "\n");
                    Response.Flush();
                    index = index + 1;
                }

            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }

            dt.Dispose();
            Response.End();
        }
예제 #32
0
        public static void RackHandleRequest(HttpRequest request, HttpResponse response)
        {
            MyRackImage.BasePath = "Rack.Net.Tests/";

            IResponse call = rackApp.Call(ConvertToDicationary(request.Params));
            TransferHeader(response, call.Headers);
            if (call.Body.IsString())
            {
                response.Write(call.Body.ToString());
            }
            else
            {
                response.BinaryWrite(call.Body.ToBytes());
            }
        }
예제 #33
0
 public static void OutputReportToSaveInXls(string fileName, XtraReport xtraReport, System.Web.HttpResponse response, XlsExportOptions xlsOptions)
 {
     using (var ms = new MemoryStream())
     {
         xtraReport.ExportToXls(ms, xlsOptions);
         ms.Seek(0, SeekOrigin.Begin);
         byte[] report = ms.ToArray();
         response.Buffer = true;
         response.Clear();
         response.ContentType = "application/vnd.ms-excel";
         response.AddHeader("content-disposition", "attachment; filename=" + fileName + "_" + DateTime.Now.ToString("dd_MM_yyyy", new System.Globalization.CultureInfo("en-US")) + "." + "xls");
         response.BinaryWrite(report);
         response.Flush();
     }
 }
예제 #34
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="httpResponse"></param>
 /// <param name="body"></param>
 protected void ProcessResponse(HttpResponse httpResponse, ResponseBody body)
 {
     try
     {
         SetResponseHead(httpResponse);
         var buffer = ResponseFormater.Serialize(body);
         httpResponse.BinaryWrite(buffer);
     }
     catch (Exception error)
     {
         TraceLog.WriteError("Response handle error:{0}", error);
         httpResponse.StatusCode = 500;
         httpResponse.StatusDescription = "Response error.";
     }
 }
예제 #35
0
        private static void ResponseWrite(string Result, string FileName, string ContentType)
        {
            System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;

            byte[] lstByte = System.Text.Encoding.UTF8.GetBytes(Result);

            Response.ClearHeaders();
            Response.ClearContent();
            Response.ContentType = string.Format("{0}; charset=utf-8", ContentType);
            Response.AppendHeader("Content-disposition", string.Format("attachment; filename=\"{0}\"", FileName));
            Response.AppendHeader("Content-Length", lstByte.Length.ToString());
            Response.BinaryWrite(lstByte);
            Response.Flush();
            Response.End();
        }
예제 #36
0
        /// <summary>
        /// Method to provide create Plain Text for download from website
        /// </summary>
        /// <param name="reportName">Report name</param>
        /// <param name="plainText">Data text</param>
        /// <param name="response">HttpResponse</param>
        /// /// <summary>
        public static void ExportPlainText(string reportName, string plainText, System.Web.HttpResponse response)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(plainText);

            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            response.Buffer = true;
            response.Clear();
            response.ClearContent();
            response.ClearHeaders();
            response.ContentType     = "text/plain";
            response.ContentEncoding = System.Text.Encoding.UTF8;
            response.AddHeader("content-disposition", "attachment; filename=" + reportName + ".txt");
            response.BinaryWrite(bytes); // create the file
            response.End();              // send it to the client to download
        }
예제 #37
0
 /// <summary>
 /// 将workbook从浏览器端下载
 /// </summary>
 /// <param name="workbook">Workbook</param>
 /// <param name="response">HttpResponse</param>
 /// <param name="filename">保存的文件名</param>
 public static void Download(Workbook workbook, System.Web.HttpResponse response, string filename = null)
 {
     if (string.IsNullOrEmpty(filename))
     {
         filename = DateTime.Now.ToString("yyyyMMdd_hhMMssfff") + ".xls";
     }
     response.Clear();
     response.Buffer  = true;
     response.Charset = "utf-8";
     response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
     response.ContentEncoding = System.Text.Encoding.UTF8;
     response.ContentType     = "application/ms-excel";
     response.BinaryWrite(workbook.SaveToStream().ToArray());
     response.End();
 }
예제 #38
0
        /// <summary>
        /// Create an Excel file, and write it out to a MemoryStream (rather than directly to a file)
        /// </summary>
        /// <param name="ds">DataSet containing the data to be written to the Excel.</param>
        /// <param name="filename">The filename (without a path) to call the new Excel file.</param>
        /// <param name="Response">HttpResponse of the current page.</param>
        /// <returns>Either a MemoryStream, or NULL if something goes wrong.</returns>
        public static bool CreateExcelDocumentAsStream(DataSet ds, string filename, System.Web.HttpResponse Response)
        {
            try
            {
                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                using (SpreadsheetDocument document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook, true))
                {
                    WriteExcelFile(ds, document);
                }
                stream.Flush();
                stream.Position = 0;

                Response.ClearContent();
                Response.Clear();
                Response.Buffer  = true;
                Response.Charset = "";

                //  NOTE: If you get an "HttpCacheability does not exist" error on the following line, make sure you have
                //  manually added System.Web to this project's References.

                Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
                Response.AddHeader("content-disposition", "attachment; filename=" + filename);
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AppendHeader("content-length", stream.Length.ToString());
                byte[] data1 = new byte[stream.Length];
                stream.Read(data1, 0, data1.Length);
                stream.Close();
                Response.BinaryWrite(data1);
                Response.Flush();

                //  Feb2015: Needed to replace "Response.End();" with the following 3 lines, to make sure the Excel was fully written to the Response
                System.Web.HttpContext.Current.Response.Flush();
                System.Web.HttpContext.Current.Response.SuppressContent = true;
                System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();

                return(true);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Failed, exception thrown: " + ex.Message);

                //  Display an error on the webpage.
                System.Web.UI.Page page = System.Web.HttpContext.Current.CurrentHandler as System.Web.UI.Page;
                page.ClientScript.RegisterStartupScript(page.GetType(), "log", "console.log('Failed, exception thrown: " + ex.Message + "')", true);

                return(false);
            }
        }
예제 #39
0
        protected override Gizmox.WebGUI.Common.Interfaces.IGatewayHandler ProcessGatewayRequest(System.Web.HttpContext objHttpContext, String strAction)
        {
            if ((strAction != null) && (strAction == "LoadPDF"))
            {
                // Variables
                Warning[] warnings;
                String[]  streamIds;
                String    mimeType = String.Empty, encoding = String.Empty, extension = String.Empty;

                // Setup the report viewer object and get the array of bytes
                ReportDataSource ds     = new ReportDataSource(DATASOURCE_XSD_NAME, _DataSource);
                ReportViewer     viewer = new ReportViewer();

                viewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(RptSubreportProcessingEventHandler);

                viewer.ProcessingMode = ProcessingMode.Local;

                //Dictionary<string, DataTable> subSource = new Dictionary<string, DataTable>();
                //subSource.Add(DATASOURCE_XSD_NAME, BindDataCurrent());
                //subSource.Add("DataSource_vwStockInOutHistory2", BindDataCurrent());
                //subSource.Add("DataSource_vwStockInOutHistory3", BindDataHistory());
                //subSource.Add("DataSource_vwStockInOutHistory4", BindDataHistory());

                //viewer.LocalReport.ReportPath = "RT2008.Web.Reports.Rdlc.StockQtyStatusRdl.rdlc";
                viewer.LocalReport.EnableExternalImages   = true;
                viewer.LocalReport.EnableHyperlinks       = true;
                viewer.LocalReport.ReportEmbeddedResource = REPORT_RDLC_NAME;
                viewer.LocalReport.DataSources.Add(ds);
                viewer.LocalReport.SetParameters(GetSelParams());

                byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);

                // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
                System.Web.HttpResponse response = objHttpContext.Response;
                response.Buffer = true;
                response.Clear();
                response.ContentType = mimeType;
                response.AddHeader("content-disposition", "inline; filename=" + REPORT_FILENAME + "." + extension);
                response.BinaryWrite(bytes);    // create the file
                response.Flush();               // send it to the client to download

                return(null);
            }
            else
            {
                return(this.ProcessGatewayRequest(objHttpContext, strAction));
            }
        }
예제 #40
0
        public static void ExportExcel(System.Web.HttpResponse response, string excelLocation)
        {
            byte[] bytes = File.ReadAllBytes(excelLocation);
            response.Clear();
            response.ClearHeaders();
            response.ClearContent();
            response.ContentType = "application/vnd.ms-excel";
            response.AddHeader("Content-Length", bytes.Length.ToString());
            response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(Path.GetFileName(excelLocation), System.Text.Encoding.UTF8).Replace("+", "%20"));

            response.BinaryWrite(bytes);
            if (response.IsClientConnected)
            {
                response.Flush();
            }
        }
        internal static void GenerateCsvResponse(HttpResponse response, string formName, string data)
        {
            Assert.ArgumentNotNull(response, "response");
            Assert.ArgumentNotNullOrEmpty(formName, "formName");
            Assert.ArgumentNotNullOrEmpty(data, "data");

            response.Clear();
            response.ContentType = Constants.Response.ContentType.Csv;
            response.AddHeader(Constants.Response.Header.ContentDisposition.Name,
                string.Format(Constants.Response.Header.ContentDisposition.AttachmentFilenameFormat,
                    GenerateFileNameService.GenerateFileName(formName)));
            response.Charset = Constants.Response.Charset.Utf8;
            response.BinaryWrite(Encoding.UTF8.GetPreamble());
            response.Write(data);
            response.End();
        }
예제 #42
0
        private static void Default()
        {
            PdfConverter pdfConverter = new PdfConverter();

            pdfConverter.PdfDocumentOptions.PdfPageSize           = PdfPageSize.A4;
            pdfConverter.PdfDocumentOptions.PdfCompressionLevel   = PdfCompressionLevel.Normal;
            pdfConverter.PdfDocumentOptions.ShowHeader            = true;
            pdfConverter.PdfDocumentOptions.ShowFooter            = true;
            pdfConverter.PdfDocumentOptions.LeftMargin            = 5;
            pdfConverter.PdfDocumentOptions.RightMargin           = 5;
            pdfConverter.PdfDocumentOptions.TopMargin             = 5;
            pdfConverter.PdfDocumentOptions.BottomMargin          = 5;
            pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;

            pdfConverter.PdfDocumentOptions.ShowHeader = true;
            //pdfConverter.PdfHeaderOptions.HeaderText = "Sample header: " + "<br><font color='#ff0000'>ASDF</a><br/><B>DDD</B>";

            pdfConverter.PdfHeaderOptions.HtmlToPdfArea   = new HtmlToPdfArea("http://localhost:24533/HtmlPage.html");
            pdfConverter.PdfHeaderOptions.HeaderTextColor = Color.Blue;
            //pdfConverter.PdfHeaderOptions.HeaderDescriptionText = string.Empty;
            pdfConverter.PdfHeaderOptions.DrawHeaderLine = false;

            //pdfConverter.PdfFooterOptions.FooterText =
            //    "Sample footer: <B>Jimmy</B>. You can change color, font and other options";

            pdfConverter.PdfFooterOptions.HtmlToPdfArea   = new HtmlToPdfArea("http://localhost:24533/HtmlPage.html");
            pdfConverter.PdfFooterOptions.FooterTextColor = Color.Blue;
            pdfConverter.PdfFooterOptions.DrawFooterLine  = false;
            pdfConverter.PdfFooterOptions.PageNumberText  = "Page";
            pdfConverter.PdfFooterOptions.ShowPageNumber  = true;

            //pdfConverter.LicenseKey = "put your serial number here";
            byte[] downloadBytes = pdfConverter.GetPdfFromUrlBytes("www.vipsoft.com.cn/index.html");


            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "binary/octet-stream");
            response.AddHeader("Content-Disposition",
                               "attachment; filename=" + "Test.pdf" + "; size=" + downloadBytes.Length.ToString());
            response.Flush();
            response.BinaryWrite(downloadBytes);
            response.Flush();
            response.End();
        }
 /// <summary>
 /// 保存报表文件为文件
 /// </summary>
 /// <param name="rpvObject">Reportview控件实例</param>
 /// <param name="rptType">打印的文件类型</param>
 /// <param name="filePath">文件存放路径</param>
 /// <param name="fileName">文件名</param>
 public static void Dowload(HttpResponse response, string filePath, string fileName, string extension)
 {
     if (response == null || string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(filePath) || string.IsNullOrEmpty(extension)) return;
     FileStream stream = new FileStream(filePath + fileName + "." + extension, FileMode.Open);
     byte[] bytes = new byte[stream.Length];
     stream.Read(bytes, 0, bytes.Length);
     // 设置当前流的位置为流的开始
     stream.Seek(0, SeekOrigin.Begin);
     stream.Close();
     //Download
     response.Buffer = true;
     response.Clear();
     response.ContentType = "application/" + extension;
     response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + extension);
     response.BinaryWrite(bytes);
     response.Flush();
     response.End();
 }
예제 #44
0
        public void imprimirReciboPDF(int numRecibo, HttpResponse Response)
        {
            try
            {
                DataSet dsRec = new DataSet("DataSetRec");
                DataTable dt = new DataTable("DataTableRec");
                FacturasRN ds = new FacturasRN();
                dsRec.Tables.Add(dt);

                ds.getRecibos(ref dt, numRecibo);
                ReportDataSource rds = new ReportDataSource();
                rds.Name = "DataSetRec_DataTableRec";
                rds.Value = dsRec.Tables[0];
                ReportViewer ReportViewer1 = new ReportViewer();
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.DataSources.Add(rds);
                ReportViewer1.LocalReport.ReportPath = "F:/EBuy/EbuyPlaceNet/FacturacionEbuy/Reportes/Recibo/Recibo_rpt.rdlc";
                //Dim p As New ReportParameter("TITULO", "DETALLE DEL LOTE " & Request.QueryString("id_lote") & " DE LA OBRA " & Request.QueryString("obra"))
                //ReportViewer1.LocalReport.SetParameters(New ReportParameter() {p})
                ReportViewer1.LocalReport.Refresh();
                string reportType = "PDF";
                string mimeType = "";
                string encoding = "";
                string fileNameExtension = "";

                string deviceInfo = "" + " PDF" + " 8.5in" + " 11in" + " 0.5in" + " 1in" + " 1in" + " 0.5in" + "";

                Warning[] Warnings = null;
                string[] streams = null;
                Byte[] renderedBytes;

                renderedBytes = ReportViewer1.LocalReport.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out Warnings);

                Response.Clear();
                Response.ContentType = mimeType;
                Response.AddHeader("content-disposition", "attachment; filename=Recibo." + fileNameExtension);
                Response.BinaryWrite(renderedBytes);
                Response.End();
            }
            catch(Exception ex)
            {

            }
        }
 public static void WriteResponse(HttpResponse response, byte[] filearray, string type)
 {
     response.ClearContent();
     response.Buffer = true;
     response.Cache.SetCacheability(HttpCacheability.Private);
     response.ContentType = "application/pdf";
     ContentDisposition contentDisposition = new ContentDisposition();
     contentDisposition.FileName = "SaldoDotacao.pdf";
     contentDisposition.DispositionType = type;
     response.AddHeader("Content-Disposition", contentDisposition.ToString());
     response.BinaryWrite(filearray);
     HttpContext.Current.ApplicationInstance.CompleteRequest();
     try
     {
         response.End();
     }
     catch (System.Threading.ThreadAbortException)
     {
     }
 }
        public static void OutputToExcel(LocalReport localReport, string fileName, HttpResponse Response)
        {
            const string reportType = "Excel";
            string mimeType;
            string encoding;
            string fileNameExtension;

            // The DeviceInfo settings should be changed based on the reportType
            //      http://msdn2.microsoft.com/en-us/library/ms155397.aspx

            const string deviceInfo = "<DeviceInfo>" +
                                      "  <OutputFormat>Excel</OutputFormat>" +
                                      "  <OmitDocumentMap>false</OmitDocumentMap>" +
                                      "  <OmitFormulas>false</OmitFormulas>" +
                                      "  <RemoveSpace>0.125in</RemoveSpace>" +
                                      "  <SimplePageHeaders>false</SimplePageHeaders>" +
                                      "</DeviceInfo>";

            Warning[] warnings;
            string[] streams;

            //Render the report
            byte[] renderedBytes = localReport.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);

            // Clear the response stream and write the bytes to the outputstream
            // Set content-disposition to "attachment" so that user is prompted to take an action
            // on the file (open or save)
            Response.Clear();
            Response.ContentType = mimeType;
            Response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + fileNameExtension);
            Response.BinaryWrite(renderedBytes);
            Response.End();
        }
예제 #47
0
        //public void DownLoad(HttpRequest request, HttpResponse response, string name, string path, long speed)
        //{
        //    try
        //    {
        //        if (string.IsNullOrEmpty(path))
        //        {
        //            path = System.Web.HttpContext.Current.Server.MapPath(name);
        //        }
        //        //BinaryReader br
        //        #region response
        //        response.Clear();
        //        response.AddHeader("Accept-Ranges", "bytes");
        //        response.AddHeader("Content-Length", "");
        //        response.AddHeader("Content-Range", "");
        //        response.AddHeader("Connection", "Keep-Alive");
        //        response.AddHeader("Content-Type", "application/octet-stream");
        //        response.AddHeader("Content-Disposition", "attachment;filename=" + path);
        //        //response.TransmitFile();
        //        //response.BinaryWrite();
        //        response.End();
        //        #endregion
        //    }
        //    catch { }
        //}

        private void DownLoad(HttpResponse response, string name, string path)
        {

            try
            {
                if (string.IsNullOrEmpty(path))
                {
                    path = System.Web.HttpContext.Current.Server.MapPath(name);
                }

                //以字符流的形式下载文件
                FileStream fs = new FileStream(path, FileMode.Open);
                byte[] bytes = new byte[(int)fs.Length];
                fs.Read(bytes, 0, bytes.Length);
                fs.Close();
                response.ContentType = "application/octet-stream";
                //通知浏览器下载文件而不是打开
                response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8));
                response.BinaryWrite(bytes);
                response.Flush();
                response.End();
            }
            catch { }
        }
        public static void Run()
        {
            // ExStart:SendingPdfToBrowser
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdfGenerator_AdvanceFeatures();

            // Instantiate Pdf instance by calling its empty constructor
            Aspose.Pdf.Generator.Pdf pdf1 = new Aspose.Pdf.Generator.Pdf();

            MemoryStream stream = new MemoryStream();
            HttpResponse Response = new HttpResponse(null);
            pdf1.Save(stream);
            Response.Clear();
            Response.ClearHeaders();
            Response.ClearContent();
            Response.Charset = "UTF-8";
            Response.AddHeader("Content-Length", stream.Length.ToString());
            Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", dataDir + "SendingPdfToBrowser.pdf"));
            Response.ContentType = "application/pdf";
            Response.BinaryWrite(stream.ToArray());
            Response.Flush();
            Response.End();
            // ExEnd:SendingPdfToBrowser           
        }
        /// <summary>
        /// 下载报表文件
        /// </summary>
        /// <param name="s_rptType">打印的文件类型("Excel,PDF,Image")</param>
        public static void DowloadReportFile(HttpResponse response, ReportViewer rpvObject, ReportPrintType rptType, string fileName)
        {
            if (string.IsNullOrEmpty(fileName) || response == null || rpvObject == null) return;
            Warning[] warnings;
            string[] streamids;
            string mimeType;
            string encoding;
            string extension;

            byte[] bytes = rpvObject.LocalReport.Render(
            rptType.ToString(), null, out mimeType, out encoding, out extension,
            out streamids, out warnings);
            //Download
            response.Buffer = true;
            response.Clear();
            response.ContentType = "application/" + extension;
            response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + extension);
            response.BinaryWrite(bytes);
            response.Flush();
            response.End();
        }
예제 #50
0
		public void BinaryWrite_Deny_Unrestricted ()
		{
			HttpResponse response = new HttpResponse (writer);
			try {
				response.BinaryWrite (new byte[0]);
			}
			catch (HttpException) {
				// ms 
			}
		}
예제 #51
0
        /// <summary>
        /// 产生验证图片信息
        /// </summary>
        /// <param name="checkCode"></param>
        /// <param name="Response"></param>
        protected void ResponseImage2(string checkCode, HttpResponse Response)
        {
            int iwidth = 80;// (int)(checkCode.Length * 25);
            using (System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 30))
            {
                System.Random rand = new Random(~unchecked((int)DateTime.Now.Ticks));
                using (Graphics g = Graphics.FromImage(image))
                {
                    g.Clear(Color.White);
                    //定义颜色
                    Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple, Color.SkyBlue };
                    //定义字体
                    string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体", "Comic Sans MS" };

                    Color nowColor = c[rand.Next(8)]; //Color.FromArgb(rand.Next());

                    /*
                    //rand = new Random(~unchecked((int)DateTime.Now.Ticks));
                    //随机输出噪点
                    for (int i = 0; i < 50; i++)
                    {
                        int x = rand.Next(image.Width);
                        int y = rand.Next(image.Height);
                        //image.SetPixel(x, y, nowColor);
                        g.DrawPie(new Pen(nowColor, 0), x, y, 2, 2, 1, 1);
                    }
                    */

                    //rand = new Random(~unchecked((int)DateTime.Now.Ticks));
                    //输出不同字体和颜色的验证码字符
                    for (int i = 0; i < checkCode.Length; i++)
                    {
                        int findex = rand.Next(6);
                        Font _font = new System.Drawing.Font(font[findex], 16, System.Drawing.FontStyle.Bold);
                        Brush b = new System.Drawing.SolidBrush(nowColor);

                        g.DrawString(checkCode.Substring(i, 1), _font, b, rand.Next(1, 8) + (i * 14), rand.Next(6));
                    }

                    /*
                    //rand = new Random(~unchecked((int)DateTime.Now.Ticks));
                    //画图片的前景噪音点
                    for (int i = 0; i < 50; i++)
                    {
                        int x = rand.Next(image.Width);
                        int y = rand.Next(image.Height);
                        //image.SetPixel(x, y, Color.FromArgb(rand.Next()));
                        //image.SetPixel(x, y, nowColor);
                        g.DrawPie(new Pen(nowColor, 0), x, y, 2, 2, 1, 1);
                    }
                    */

                    //画一个边框
                    //g.DrawRectangle(new Pen(nowColor, 0), 0, 0, image.Width - 1, image.Height - 1);
                }

                rand = new Random(~unchecked((int)DateTime.Now.Ticks));
                //using (var ximage = TwistImage(image, true, rand.Next(3, 8), rand.Next(1, 4)))
                //{
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                Response.ClearContent();
                Response.ContentType = "image/png";
                Response.BinaryWrite(ms.ToArray());
                //}
            }
        }
예제 #52
0
        private static void WriteFileToResponse(FileStream fs, HttpResponse response)
        {
            var buffer = new byte[1024]; // 1 KB buffer

            //  keep track of how much of the file we have read
            //  and stop when we have read the entire file
            long numBytesRead = 0;
            while (numBytesRead < fs.Length)
            {
                int numBytesReadIntoBuffer = fs.Read(buffer, 0, buffer.Length);

                if (numBytesReadIntoBuffer == buffer.Length)
                {
                    //  if we filled the buffer, then write the entire buffer
                    //  to the response
                    response.BinaryWrite(buffer);
                }
                else
                {
                    //  if we only filled part of the buffer, then get
                    //  the part we filled and write just that portion
                    //  to the response
                    byte[] bytesToWrite = buffer.Take(numBytesReadIntoBuffer).ToArray();
                    response.BinaryWrite(bytesToWrite);
                }

                numBytesRead += numBytesReadIntoBuffer;
            }
        }
        private void WriteBytes(byte[] bytes, HttpResponse response, string contentType)
        {
            if (bytes == null || bytes.Length == 0)
                return;

            ContentType = contentType;

            ServerUtil.AddCache(60 * 24 * 90);

            response.BinaryWrite(bytes);
        }
 void Download(HttpResponse resp, GUIDEx fileID)
 {
     lock (this)
     {
         if (resp != null)
         {
             string fullFileName = null, contentType = null;
             byte[] data = this.workDownloadService.Download(fileID, out fullFileName, out contentType);
             if (data != null && data.Length > 0)
             {
                 resp.Buffer = true;
                 resp.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fullFileName, System.Text.Encoding.UTF8));
                 resp.ContentEncoding = Encoding.GetEncoding("gb2312");//设置输出流为简体中文
                 resp.ContentType = contentType;//"application/OCTET-STREAM";
                 // resp.BufferOutput = true;
                 resp.BinaryWrite(data);
                 resp.Flush();
                 resp.End();
             }
             else
             {
                 resp.Write("文件不存在!" + fileID);
             }
         }
     }
 }
예제 #55
0
        public override void Process(HttpRequest request, HttpResponse response, HttpApplication application)
        {
            object processor = null;
            if (routeMap.TryGetValue(request.Path, out processor))
            {
                if (processor is string)
                {
                    processor = new LoadedScript(processor.ToString());
                    routeMap[request.Path] = processor;
                }
                if (processor is NiL.JS.Core.BaseTypes.Function)
                {
                    (processor as NiL.JS.Core.BaseTypes.Function).Invoke(new NiL.JS.Core.BaseTypes.Array(new object[] { request, response, application }));
                    return;
                }
                else if (processor is LoadedScript)
                {
                    var sc = (processor as LoadedScript).Script;
                    sc.Context.InitField("application").Assign(TypeProxy.Proxy(application));
                    sc.Context.InitField("request").Assign(TypeProxy.Proxy(request));
                    sc.Context.InitField("response").Assign(TypeProxy.Proxy(response));
                    sc.Invoke();
                    return;
                }
            }

            if (defaultScript == null)
            {
                try
                {
                    defaultScript = new LoadedScript(defaultPath);
                }
                catch
                {
                    response.BinaryWrite(System.Text.Encoding.Default.GetBytes(new Http.ErrorPage(Http.ResponseCode.SERVICE_UNAVAILABLE, "Service unavailable.").ToString()));
                    response.StatusCode = (int)Http.ResponseCode.SERVICE_UNAVAILABLE;
                }
            }
            lock (defaultScript)
            {
                var script = defaultScript.Script;
                script.Context.InitField("application").Assign(TypeProxy.Proxy(application));
                script.Context.InitField("request").Assign(TypeProxy.Proxy(request));
                script.Context.InitField("response").Assign(TypeProxy.Proxy(response));
                script.Invoke();
            }
        }
예제 #56
0
        public void ResponseOpenFileBytes(byte[] File, string ContentType, string SaveAsFileName, HttpResponse response)
        {
            if (string.IsNullOrEmpty(ContentType))
            {
                ContentType = "application/octet-stream";
            }

            response.Clear();
            response.AddHeader("content-disposition", "attachment;filename=" + SaveAsFileName);
            response.ContentType = ContentType;
            response.BinaryWrite(File);
            //response.End();
        }
        public static void OutputToPDF(LocalReport localReport, string fileName, bool landscape, bool legal, HttpResponse Response)
        {
            const string reportType = "PDF";
            string mimeType;
            string encoding;
            string fileNameExtension;

            // The DeviceInfo settings should be changed based on the reportType
            //      http://msdn2.microsoft.com/en-us/library/ms155397.aspx

            string deviceInfo =
            "<DeviceInfo>" +
            "  <OutputFormat>PDF</OutputFormat>" +
            "  <PageWidth>" + (landscape ? (legal ? "14" : "11") : "8.5") + "in</PageWidth>" +
            "  <PageHeight>" + (landscape ? "8.5" : (legal ? "14" : "11")) + "in</PageHeight>" +
            "  <MarginTop>0.5in</MarginTop>" +
            "  <MarginLeft>0.25in</MarginLeft>" +
            "  <MarginRight>0.25in</MarginRight>" +
            "  <MarginBottom>0.3in</MarginBottom>" +
            "</DeviceInfo>";

            /*  other attributes for the DeviceInfo are
                StartPage - The first page of the report to render. A value of 0 indicates that all pages are rendered. The default value is 1.
                Columns - The number of columns to set for the report. This value overrides the report's original settings.
                ColumnSpacing - The column spacing to set for the report. This value overrides the report's original settings.
                EndPage - The last page of the report to render. The default value is the value for StartPage.
            */

            Warning[] warnings;
            string[] streams;

            //Render the report
            byte[] renderedBytes = localReport.Render(
                reportType,
                deviceInfo,
                out mimeType,
                out encoding,
                out fileNameExtension,
                out streams,
                out warnings);

            // Clear the response stream and write the bytes to the outputstream
            // Set content-disposition to "attachment" so that user is prompted to take an action
            // on the file (open or save)
            Response.Clear();
            Response.ContentType = mimeType;
            Response.AddHeader("content-disposition", "attachment; filename=" + fileName + "." + fileNameExtension);
            Response.BinaryWrite(renderedBytes);
            Response.End();
        }
예제 #58
0
 protected void StreamChunk(byte[] bytes, HttpResponse response)
 {
     if (bytes != null && bytes.Length > 0)
     {
         byte[] chunkLength = System.Text.Encoding.ASCII.GetBytes(System.Convert.ToString(bytes.Length, 0x10));
         response.BinaryWrite(chunkLength);
         response.BinaryWrite(CRLF_BYTES);
         response.BinaryWrite(bytes);
         response.Flush();
     }
     else
     {
         //response.OutputStream.WriteByte(48);
         //response.BinaryWrite(CRLF_BYTES);
         response.Flush();
     }
 }
예제 #59
0
        public override void Process(HttpRequest request, HttpResponse response, HttpApplication application)
        {
            var encoding = Encoding.UTF8;
            int visitCount = 0;
            var t = request.Cookies["visitcount"];
            if (t != null)
                int.TryParse(t.Value, out visitCount);
            visitCount++;
            var page = new HtmlPage()
            { 
                new HtmlElement("div", "content")
                {
                    new HtmlElement("div", "toptext") { new Text("if you see it, then") },
                    new HtmlElement("div", "title") { new Text("NiL.WBE") },
                    new HtmlElement("div", "bottomtext") { new Text("working") },
                    new Text("you was here " + visitCount + " times")
                }
            };
            page.Head.Add(new HtmlElement("style")
            {
                new Text(
@"
    html {
        height: 100%;
    }
    * {
        text-align: center;
        font-family: Lobster;
    }
    body {
        height: 100%;
    }
    #content {
        position: relative;
        top: 25%;
    }
    #title {
        font-size: 80px
    }
    @font-face {
        font-family: 'Lobster';
        font-style: normal;
        font-weight: 400;
        src: local('Lobster'), url(http://themes.googleusercontent.com/static/fonts/lobster/v5/9eID_a1kLfzp_BP9s4L15g.woff) format('woff');
    }
", false)
            });
            try
            {
                page.Head.Add(new HtmlElement("title") { new Text("NiL.WBE") });
                response.ContentType = page.ContentType;
                response.ContentEncoding = System.Text.Encoding.UTF8;
                response.Cookies.Add(new HttpCookie("visitcount", visitCount.ToString()));
                response.Status = "200 OK";
                response.BinaryWrite(encoding.GetBytes(page.ToString()));
                application.CompleteRequest();
            }
            catch(Exception e)
            {
                string text = e.ToString();
            }
        }
예제 #60
0
        public static void GetStreamFromFile(string filename, HttpResponse response)
        {
            if (!File.Exists(filename))
            {
                string userdatapath = Functions.GetAppConfigString("UserDataPath", "");
                filename = userdatapath + "\\default.png";
            }

            System.IO.FileStream fs = null;
            System.IO.MemoryStream ms = null;
            try
            {

                fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Close();

                ms = new System.IO.MemoryStream(buffer);

                //response.ClearContent();

                response.Clear();
                response.ClearHeaders();
                response.Buffer = false;
                string fname = Path.GetFileName(filename);
                response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fname, System.Text.Encoding.ASCII));
                response.AppendHeader("Content-Length", ms.Length.ToString());

                response.BinaryWrite(ms.ToArray());
                ms.Close();

            }
            finally
            {
                fs.Dispose();
                ms.Dispose();

            }
        }