微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将用户制作的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在服务器上.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐