【问题标题】:Can we save canvas image in system also like direct download image when we click save我们可以在系统中保存画布图像,也可以在单击保存时直接下载图像吗
【发布时间】:2013-02-20 08:37:03
【问题描述】:

您好,我已经完成了一个项目,我可以像下载到 div 一样保存图像,然后右键单击它显示另存为图像,我不想那样做。我想直接下载图像而不是像上面一样我想使用 SQL Server 和 mvc3 Web 应用程序将图像路径保存在数据库中。如何保存在数据库中我需要使用任何服务器端代码。 我谷歌它,但找不到任何相关的答案。 是否有可能我问过是否有人可以指导我。 提前致谢。

以下代码用于保存图像,我需要更改它。

function downloadCanvas() {
    var canvas = stage.children[0].canvas;
    var oImgPNG = Canvas2Image.saveAsPNG(canvas, true);
    document.body.appendChild(oImgPNG);
  }

当我在 Google 中搜索时,每个人都在使用 php 代码。 如何在html5中使用php代码。

【问题讨论】:

    标签: javascript asp.net-mvc-3 sql-server-2008 html5-canvas


    【解决方案1】:

    通过Ajax发送数据到服务器,然后保存为图片,

    var canvasData = canvas.toDataURL("image/png");
    var ajax = new XMLHttpRequest();
    ajax.open("POST",'save.php',false);
    ajax.setRequestHeader('Content-Type', 'application/upload');
    ajax.send(canvasData); 
    

    PHP,

    <?php 
    if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
    {
        // Get the data
        $imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
    
    
        $filteredData=substr($imageData, strpos($imageData, ",")+1);
    
        $unencodedData=base64_decode($filteredData);
    
        $random_digit=md5(uniqid(mt_rand(), true));
    
        $fp = fopen( 'yourfolder/new'.$random_digit.'.png', 'wb' );
        fwrite( $fp, $unencodedData);
        fclose( $fp );
        //Now save the path in database!
    }
    ?>
    

    图像将保存在“yourfolder/new'.$random_digit.'.png'”中。 链接到同一个问题,

    Sending photo from javascript to server

    【讨论】:

    • 在save.php中创建图片后,可以将图片路径保存到数据库中。
    • MJQ thanq 为你的回复我应该把这个 php 代码保存在哪里。我真的不知道 php 在哪里使用它。我可以在html结束标签之后写吗
    • @Geethika PHP 是服务器端代码,因此您需要一个 PHP 服务器来运行此代码
    【解决方案2】:

    您必须通过对 Web 服务器的 ajax 调用将图像数据发送到服务器,如下所示:

    http://www.dotnetfunda.com/articles/article1662-saving-html-5-canvas-as-image-on-the-server-using-aspnet.aspx

    然后,根据图像大小,将图像的 URL 存储到 SQL Server(如果是小图像)或存储数据。阅读本文以帮助您做出选择:Save image url or save image file in sql database?

    【讨论】:

    • 我已经阅读了那篇文章,但我没有在任何地方使用 .aspx,我正在使用带有数据库工作流的 mvc3 控制器。在我的项目中出现图像大小,我将多个图像保存为一个图像。
    • 我是数据库新手,请您详细说明一下,以便我可以了解更多信息,谢谢您的回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多