我正在使用html2canvas.js
创建一个网页的截图。唯一的问题是,我不知道如何将这些数据传输到图像文件格式中,以便将其保存并链接到数据库中。
这是我目前的代码:
<script language="Javascript">
setInterval(function() {
html2canvas(document.body, {
onrendered: function(canvas2) {
context.drawImage(video, 0, 0, 240, 180);
$.post(
"' . self::get_link('save_screenshots') . '",
"user_id=' . module_security::get_loggedin_id() .
'&screenshot=" + encodeURI(canvas2.toDataURL())
);
document.body.appendChild(canvas2)
}
})
}, 1*60*1000);
</script>
发布于 2014-07-01 03:37:58
这可能对你有帮助:
<?php
// requires php5
define('UPLOAD_DIR', 'your/images/directory/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$img_file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($img_file, $data);
if($img_file){
// store the link to database
} else{
//return error msg
}
?>
发布于 2014-07-01 03:45:15
您应该让jQuery为您处理请求编码:
$.post(url, {
user_id: 123,
screenshot: canvas2.toDataURL()
}, function() {
// success
document.body.appendChild(canvas2);
});
然后,在服务器端像这样解码它:
$data = base64_decode(substr(
$_POST['screenshot'],
strpos($_POST['screenshot'], ',') + 1
));
https://stackoverflow.com/questions/24501958
复制相似问题