Как загрузить изображение, которое находится в виде байтов, созданных html2canvas из контроллера в MVC?
Я пытаюсь отправить изображение, созданное image2canvas, на контроллер с помощью ajax, а затем загрузить его с помощью контроллера.
Вот мой код:
$("#btnExportAsImageByPost").click(function () { var base64; html2canvas($("#Table")[0]).then(function (canvas) { base64 = canvas.toDataURL(); document.body.appendChild(canvas); alert(base64); $("[id*=hfImageData]").val(base64); }); alert(base64); var url = "/HtmlToImage/Index/"; $.ajax({ type: 'POST', url: url, data: base64, dataType: "string", success: function (evt) { $("#Table").hide('slow'); }, }); });
<div id="Table" style="width: 340px; background-color: White; padding: 5px"> <table cellspacing="0" border="1"> <tbody><tr> <th style="width: 90px">Customer id</th> <th style="width: 120px">Name</th> <th style="width: 120px">Country</th> </tr> <tr> <td>1</td> <td>John Hammond</td> <td>United States</td> </tr> <tr> <td>2</td> <td>Mudassar Khan</td> <td>India</td> </tr> </tbody></table> </div> <div> <input type="button" name="btnExportAsImageByPost" id="btnExportAsImageByPost" value="Export as image(Post)" /> </div>
Вот мое действие контроллера:
[HttpPost] [ActionName("Index")] public ActionResult Index_Post(string base64) { byte[] bytes = Convert.FromBase64String(base64); return File(bytes, "image/png", "HtmlToImage.png"); }
Но проблема в том, что в браузере ничего не происходит, когда контроллер возвращает файл. Вместо запроса на сохранение файла.
Что я уже пробовал:
Вышеприведенный код-это то, что я пробовал до сих пор