Ton*_*bet 4 php base64 png html2canvas
我生成画布并将其传递给php所以:
$('body').on('click','#save_image',function(){
html2canvas($('.myImage'), {
onrendered: function(canvas) {
//$('.imageHolder').html(canvas);
var dataURL = canvas.toDataURL("image/png");
// $('.imageHolder').append('<img src="'+dataURL+'" />');
$('.imageHolder').html('Generating..');
$.post('image.php',{image: dataURL},function(data){
$('.imageHolder').html(data);
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
image.php:
<?
$image = $_POST['image'];
echo "<img src='$image' alt='image' />";
$decoded = str_replace('data:image/png;base64,','',$image);
$name = time();
file_put_contents("/home/toni005/public_html/toniweb.us/div2img/" . $name . ".png", $decoded);
echo '<p><a href="download.php?img='.$name.'.png">Download</a></p>';
?>
Run Code Online (Sandbox Code Playgroud)
的download.php:
<? $file = $_GET['img'];
header('Content-Description: File Transfer');
header("Content-type: image/jpg");
header("Content-disposition: attachment; filename= ".$file."");
readfile($file);
?>
Run Code Online (Sandbox Code Playgroud)
问题是生成图像,当我点击下载链接时,下载被伪造但图像无法打开(似乎已损坏)
我错过了什么?
它可以在这里测试:http://toniweb.us/div2img/
你可能应该是base64_decode()数据URL.它甚至在URL本身中说:data:image/png;base64,...
$decoded = base64_decode(str_replace('data:image/png;base64,', '', $image));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8413 次 |
| 最近记录: |