Dinesh Ambaliya Ответов: 1

как сохранить изображение холста на сервере


Я написал этот код, как показано на рисунке
сохранение в формате HTML-5-холст-как-образ-на-сервере-через-Паш
Умолчанию.aspx-файл
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/Javascript" language="Javascript">
        function drawShapes() {
            var canvas = document.getElementById("myCanvas");
            var context = canvas.getContext("2d");
            context.fillStyle = "Blue";
            context.fillRect(0, 0, 200, 200);
            context.beginPath();
            context.lineWidth = "4";
            context.strokeStyle = "Green";
            context.fillStyle = "Yellow";
            context.arc(150, 100, 50, 20, Math.PI * 2, false);
            context.stroke();
            context.fill();
        }
    </script>


<body onload="drawShapes()">

<div>
        <canvas id="myCanvas" width="200" height="200"></canvas>
        <input type="button" id="btnSave" name="btnSave" value="Save the canvas to server" />

        <script type="text/javascript">
            // Send the canvas image to the server.
            $(function() {
                $("#btnSave").click(function() {
                    var image = document.getElementById("myCanvas").toDataURL("image/png");
                    image = image.replace('data:image/png;base64,', '');
                    $.ajax({
                        type: 'POST',
                        url: 'CanvasSave.aspx/UploadImage',
                        data: '{ "imageData" : "' + image + '" }',
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json',
                        success: function(msg) {
                            alert('Image saved successfully !');
                        }
                    });
                });
            });
        </script>

    </div>



Умолчанию.aspx-файл.в CS
using System;
using System.IO;
using System.Web.Script.Services;
using System.Web.Services;

[ScriptService]
public partial class _Default : System.Web.UI.Page
{
    static string path = @"F:\Dinesh\";

    [WebMethod()]
    public static void UploadImage(string imageData)
    {
        string fileNameWitPath = path + DateTime.Now.ToString().Replace("/", "-").Replace(" ", "- ").Replace(":", "") + ".png";
        using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
        {
            using (BinaryWriter bw = new BinaryWriter(fs))
            {
                byte[] data = Convert.FromBase64String(imageData);
                bw.Write(data);
                bw.Close();

            }
        }
    }
}

Теперь drawShapes() работает, и я могу видеть графику на холсте при просмотре в браузере. Но когда я нажимаю кнопку, чтобы сохранить это изображение холста в папке, ничего не происходит. Как я могу сохранить это изображение холста в своей папке?

I.explore.code

можете ли вы поставить точку останова в методе UploadImage() и посмотреть, попадет ли точка останова? если это так, попробуйте отладить его и посмотреть, что происходит в этом методе.

Dinesh Ambaliya

О боже мой! Я поставил точку останова на метод UploadImage (), и точка останова не попала. После этого я внимательно просмотрел код, и проблема была в том, что "CanvasSave.aspx/UploadImage ()" я переименовал свою страницу Default.aspx в CanvasSave.aspx, и я соврал. Спасибо за ваш комментарий, я получил от него идею.

I.explore.code

Прекрасно! добро пожаловать, приятель! Случается со всеми нами, иногда решение слишком просто, чтобы быть очевидным сразу!

Uriel Tinashe Patsanza

вы нашли решение я застрял на сохранении на сервере

1 Ответов

Рейтинг:
2

Malek Chtiwi

Функции JavaScript, AJAX для загрузки данных изображения для CanvasSave.aspx-файл
а страница c#, считывающая данные, - это default.aspx