Captura de pantalla de un div con html2canvas. Enviado a php, guardado: Imagen corrupta.

Yo genero el lienzo y se lo paso a php así:

$('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);
                            });
                    }
                });
 });

imagen.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>';
?>

descargar.php:

    <? $file = $_GET['img'];
header('Content-Description: File Transfer');
header("Content-type: image/jpg");
header("Content-disposition: attachment; filename= ".$file."");
readfile($file);
?>

La cosa es que la imagen se genera, cuando hago clic en el enlace de descarga, la descarga se fuerza pero la imagen no se puede abrir (parece estar dañada)

¿Qué me estoy perdiendo?

Puede ser probado aquí:http://toniweb.us/div2img/

Respuestas a la pregunta(1)

Su respuesta a la pregunta