1

所以我一直在搞乱 HTML 和Literally Canvas,它们基本上只是为你创建了一个绘图板,并且得到了它,所以我的页面上有一个导出按钮。当你点击这个按钮时,它目前只打开一个带有图像的新页面;我想要完成的是让它在有人点击按钮时将文件本地保存在我的网络服务器上。

打开绘图的行是:

      window.open(lc.getImage().toDataURL());

有没有办法做到这一点?

这是我的完整代码。

<html>
  <head>
    <!-- stylesheet -->
    <link href="/draw/literallycanvas-0.4.1/css/literallycanvas.css" rel="stylesheet">

    <!-- dependency: React.js -->
    <script src="http://cdnjs.cloudflare.com/ajax/libs/react/0.10.0/react-with-addons.js"></script>

    <!-- Literally Canvas -->
    <script src="/draw/literallycanvas-0.4.1/js/literallycanvas.js"></script>
  </head>
  <body>
    <!-- where the widget goes. you can do CSS to it. -->


    <!-- kick it off -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></src>
    <script>
        // Look ma, no jQuery!
        LC.init(
            document.getElementsByClassName('literally')[0],
            {imageURLPrefix: '/draw/literallycanvas-0.4.1/lib/img'}
        );

        /* or if you just love jQuery,
            $('.literally').literallycanvas({imageURLPrefix: '/draw/literallycanvas-0.4.1/lib/img'})
        */


    </script>


<div class="literally export"></div>
<form class="controls export">
  <input type="submit" data-action="export-as-png" value="Export as PNG">
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    var lc = LC.init(document.getElementsByClassName('literally export')[0]);
    $('.controls.export [data-action=export-as-png]').click(function(e) {
      e.preventDefault();
      window.open(lc.getImage().toDataURL());
    });
  });
</script>





  </body>
</html>
4

1 回答 1

1

您将无法将图像保存到您的网络服务器,因为一切都在客户端。您最好的选择是在获取 dataUrl 后上传图片。这个问题展示了如何做到这一点:How to save a HTML5 Canvas as Image on a server

于 2014-11-28T10:00:42.853 回答