[CLOSED] while saving image on server it throwing No Response error

  1. #1

    [CLOSED] while saving image on server it throwing No Response error

    Hi,

    while saving image on server image getting No Response error after successfully uploading of Image on server.

    following is code

    HTML markup


    Html.X().Button().ID("btnSaveImage").Text("Save Image")
                                                        .Scale(ButtonScale.Small).Icon(Icon.PageExcel).Type(ButtonType.Button)
                                                        .DirectEvents(de =>
                                                        {
                                                            de.Click.Url = Url.Action("GetReportGraphToExport", "InternalPricing");
                                                            de.Click.EventMask.ShowMask = true;
                                                            de.Click.Timeout = 50000;
                                                            de.Click.Before = "App.cntrGenerateReportGraph.removeAll();";
                                                            de.Click.FormID = "frmReportFilter";
                                                            de.Click.Failure = "Ext.Msg.alert('There is an error to load report.');";
                                                            de.Click.Success = "saveChart('ReportChart',true);";
                                                        }),
    JavaScript Method

        function saveChart(chartName,saveOnServer){
                var barChart = Ext.getCmp(chartName);
                var svg1 = barChart.save({ type: 'image/svg+xml' });
                var svg1Width = barChart.width;
    
                
                Ext.net.DirectMethod.request({
                    url: '@Url.Action("SaveSvg", "InternalPricing")',
                    cleanRequest: true,
                    isUpload: true,
                    params: {
                        svg1: svg1,
                        svg1Width: svg1Width,
                        saveOnServer:saveOnServer
                       
                    }
    
                });
            }
    Server side code

    public void SaveSvg(string svg1, int svg1Width, bool saveOnServer)
            {
                try
                {
                   
                    XmlDocument xd = new XmlDocument();
                    xd.XmlResolver = null;
                    xd.LoadXml(Server.HtmlDecode(svg1));
                    SvgDocument svgGraph = null;
                    svgGraph = Svg.SvgDocument.Open(xd);
    
                    Bitmap firstImage = svgGraph.Draw();
    
                    using (Bitmap result = new Bitmap(firstImage.Width, firstImage.Height))
                    {
                        using (var canvas = Graphics.FromImage(result))
                        {
                            canvas.Clear(System.Drawing.Color.White);
                            canvas.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                            canvas.DrawImage(firstImage, new Rectangle(0, 0, firstImage.Width, firstImage.Height), new Rectangle(0, 0, firstImage.Width, firstImage.Height), GraphicsUnit.Pixel);
    
                            canvas.Save();
                        }
                        string path = System.Web.HttpContext.Current.Server.MapPath(
                                                                string.Concat( PriceRight.Settings.PropertyReader.GetProperty("SavedChart"),
                                                                              "chart.png"
                                                                              ) );
                        if (saveOnServer == true)
                        {
                            result.Save(path, System.Drawing.Imaging.ImageFormat.Png);
                        }
                        else
                        {
                            HttpContext.Response.Clear();
                            Response.Buffer = true;
                            HttpContext.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}{1}", "chart", ".png"));
                            Response.Charset = "";
                            HttpContext.Response.ContentType = "image/Png";
                            result.Save(HttpContext.Response.OutputStream, ImageFormat.Png);
                            Response.Flush();
                            Response.End();
                        }
                    }
                }
    Last edited by Daniil; Feb 04, 2014 at 11:33 AM. Reason: Please use [CODE] tags, [CLOSED]
  2. #2
    Geoffrey McGill
    Founder
  3. #3
    Hi,

    On button click i m trying to save image on server but it throwing No Response error after successfully uploading of Image on server.

    I am using Ext.net version 2.2.0.26551

    View

    Html.X().Button().ID("btnSaveImage").Text("Save Image")
    .Scale(ButtonScale.Small).Icon(Icon.PageExcel).Typ e(ButtonType.Button)
    .DirectEvents(de =>
    {
    de.Click.Url = Url.Action("GetReportGraphToExport", "InternalPricing");
    de.Click.EventMask.ShowMask = true;
    de.Click.Timeout = 50000;
    de.Click.Before = "App.cntrGenerateReportGraph.removeAll();";
    de.Click.FormID = "frmReportFilter";
    de.Click.Failure = "Ext.Msg.alert('There is an error to load report.');";
    de.Click.Success = "saveChart('ReportChart',true);";
    })
    JavaScript Method

    function saveChart(chartName,saveOnServer){
    var barChart = Ext.getCmp(chartName);
    var svg1 = barChart.save({ type: 'image/svg+xml' });
    var svg1Width = barChart.width;
    
    
    Ext.net.DirectMethod.request({
    url: '@Url.Action("SaveSvg", "InternalPricing")',
    cleanRequest: true,
    isUpload: true,
    params: {
    svg1: svg1,
    svg1Width: svg1Width,
    saveOnServer:saveOnServer
    
    }
    
    });
    }
    Controller Action method
    public void SaveSvg(string svg1, int svg1Width, bool saveOnServer)
    {
    try
    {
    
    XmlDocument xd = new XmlDocument();
    xd.XmlResolver = null;
    xd.LoadXml(Server.HtmlDecode(svg1));
    SvgDocument svgGraph = null;
    svgGraph = Svg.SvgDocument.Open(xd);
    
    Bitmap firstImage = svgGraph.Draw();
    
    using (Bitmap result = new Bitmap(firstImage.Width, firstImage.Height))
    {
    using (var canvas = Graphics.FromImage(result))
    {
    canvas.Clear(System.Drawing.Color.White);
    canvas.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQua lityBicubic;
    canvas.DrawImage(firstImage, new Rectangle(0, 0, firstImage.Width, firstImage.Height), new Rectangle(0, 0, firstImage.Width, firstImage.Height), GraphicsUnit.Pixel);
    
    canvas.Save();
    }
    string path = System.Web.HttpContext.Current.Server.MapPath(
    string.Concat( PriceRight.Settings.PropertyReader.GetProperty("SavedChart"),
    "chart.png"
    ) );
    if (saveOnServer == true)
    {
    result.Save(path, System.Drawing.Imaging.ImageFormat.Png);
    }
    else
    {
    HttpContext.Response.Clear();
    Response.Buffer = true;
    HttpContext.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}{1}", "chart", ".png"));
    Response.Charset = "";
    HttpContext.Response.ContentType = "image/Png";
    result.Save(HttpContext.Response.OutputStream, ImageFormat.Png);
    Response.Flush();
    Response.End();
    }
    }
    }
  4. #4
    Here is a quote from
    More Information Required

    Please do not repost the same code block in a new post... just EDIT your original post.
  5. #5
    It would be nice if you could post a full (but simplified) sample demonstrating the whole scenario.

    I think the problem is that you're overwriting the Response stream. The DirectEvent needs a specific format for the Response, but you're clearing the Response.
    Geoffrey McGill
    Founder
  6. #6
    It might be OK to deal with a Response directly if you are going to return a file.

    I am not sure, but please try to remove:
    cleanRequest: true

Similar Threads

  1. Replies: 7
    Last Post: Feb 27, 2013, 9:23 AM
  2. [CLOSED] Infinite Scrolling throwing Parser Error
    By rnachman in forum 2.x Legacy Premium Help
    Replies: 4
    Last Post: Sep 03, 2012, 5:19 PM
  3. [CLOSED] Saving image in byte format
    By AnulekhaK in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Mar 01, 2012, 12:37 PM
  4. Replies: 2
    Last Post: Apr 14, 2011, 9:03 AM
  5. [CLOSED] Popup throwing error while closing.
    By rnachman in forum 1.x Legacy Premium Help
    Replies: 7
    Last Post: Apr 01, 2011, 9:36 AM

Tags for this Thread

Posting Permissions