как сохранить изображение холста на сервере
Я написал этот код, как показано на рисунке
сохранение в формате 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
вы нашли решение я застрял на сохранении на сервере