编程语言
首页 > 编程语言> > 将用户制作的SVG(raphael.js)发送到服务器(php),以便可以通过电子邮件发送

将用户制作的SVG(raphael.js)发送到服务器(php),以便可以通过电子邮件发送

作者:互联网

我有一个页面,用户可以在其中创建自己的SVG图像.现在,我想在服务器(php)上访问这些图像,以便可以将它们发送到电子邮件地址.

使用这些instructions,我能够将SVG转换为画布,然后将画布转换为jpeg / png.我不再担心SVG树,因为它不再需要进行编辑,因此可以将其转换为普通图像(我认为这样会更易于处理,最终我想将该图像作为附件发送到电子邮件).

最有效的方法是什么?是否可以将转换后的jpeg / png发布到服务器?谢谢大家,有点在这里迷路了.

解决方法:

经过大量阅读之后,我设法找到了一个相当简单的解决方案,以防万一有人遇到类似的问题:

使用canvg将SVG转换为普通画布后,就可以使用canvas.toDataURL()方法了,那么您所要做的就是发布生成的URL并在服务器上对其进行解码.我为此使用了一个隐藏的输入字段.注意不要使用JQuery来获取画布,因为JQuery不会返回实际的画布而是JQuery对象.

var canvas = document.getElementById('canvas');
var dataUrl = canvas.toDataURL();
$('#hiddenInput').val(dataUrl);

在服务器端:

$encodeData = $_POST['dataUrl'];
$encodeData = substr($encodeData, strpos($encodeData, ',') + 1); //strip the URL of its headers
$decodeData = base64_decode($encodeData);
$handle = fopen('test.png', 'x+');
fwrite($handle, $decodeData);
fclose($handle);

SVG现在作为png在服务器上.

标签:image,raphael,javascript,php
来源: https://codeday.me/bug/20191031/1979338.html