首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从MVC控制器下载html2canvas创建的图像(在浏览器中显示保存对话框)?

如何从MVC控制器下载html2canvas创建的图像(在浏览器中显示保存对话框)?
EN

Stack Overflow用户
提问于 2016-11-01 14:03:49
回答 1查看 299关注 0票数 0

我正在尝试使用ajax将image2canvas创建的映像发送到控制器,然后使用控制器下载它。

这是我的代码:

代码语言:javascript
复制
$("#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" rules="all" border="1" style="border-collapse: collapse;">
    <tr>
        <th scope="col" style="width: 90px;">Customer id</th>
        <th scope="col" style="width: 120px;">Name</th>
        <th scope="col" 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>
</table>

以下是我的控制器操作:

代码语言:javascript
复制
[HttpPost]
        [ActionName("Index")]
        public ActionResult Index_Post(string base64)
        {
            byte[] bytes = Convert.FromBase64String(base64);
            return File(bytes, "image/png", "HtmlToImage.png");
        }

但问题是,当控制器返回文件时,浏览器中不会发生任何事情。而不是提示保存文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 14:17:11

我认为您的问题是,那么函数将是异步承诺。所以你必须在里面调用ajax。

因此,您在控制器上接收null的原因是,当时的函数还没有完成。base64字符串为空。如果您想了解更多信息,请尝试阅读更多有关异步javascript工作方式或承诺如何工作的内容;)。

看看这个线程:html2canvas javascript screenshot and upload

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40361664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档