2013-09-04 6 views
0

У меня есть код, который снимает снимок экрана на указанной вкладке div. Но я столкнулся с проблемой, чтобы отобразить его как .png-файл из base64 форматаОшибка при отображении снимка снимка веб-страницы

Вот мой код. Она состоит из двух отдельных файлов

1) download.php

<script type="text/javascript"src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

<script type="text/javascript" src="js/html2canvas.js"></script> 
<script type="text/javascript" src="js/jquery.plugin.html2canvas.js"></script> 
<!-- --> 
<div id="target"> 
<img src="images/1.jpg" alt="Smiley face" width="100" height="100"> 
</div> 
<script type="text/javascript"> 
    function capture() { 
     $('#target').html2canvas({ 
      onrendered: function (canvas) { 
       //Set hidden field's value to image data (base-64 string) 
      $('#img_val').val(canvas.toDataURL("image/png")); 
      //Submit the form manually 
      document.getElementById("myForm").submit(); 
     } 
    }); 
} 
</script> 
<input type="submit" value="Take Screenshot Of Div" onclick="return capture();" /> 
<form method="POST" enctype="multipart/form-data" action="save.php" id="myForm"> 
<input type="hidden" name="img_val" id="img_val" value="" /> 
</form> 

2) Save.php

<?php 
//Show the image 
$data = $_POST['img_val']; 

//Get the base-64 string from data 
$uri = substr($data, strpos($data, ",") + 1); 
//Decode the string 

$unencodedData = base64_decode($uri); 
$im = str_replace($data, '+', 'img.png'); 
//Save the image 
$v = file_put_contents($data, $im); 
$result = '<img src="' . $im . '" />'; 
print_r($result); 
?> 

Мне нужно изображение, которое будет отображаться как локальный/хуг/скриншота/IMG. png, который я не могу сделать. Пожалуйста, см. код, помогите мне разобраться в этой проблеме.

Заранее спасибо.

+0

'var_dump ($ im);' и вставить вывод здесь –

+0

после использования var_dump ($ im); Я получаю вывод в виде строки (7) «img.png» – user2745335

+0

Проверьте мой ответ - это вы хотите сказать? –

ответ

0

Я не могу видеть любой элемент в html с идентификатором атрибута из target в вашем коде, но вы используете его

$('#target').html2canvas({ 

Похожий вопрос [здесь] [1]

Я нашел некоторые вещи полезным

var html2obj = html2canvas($('body')); 

var queue = html2obj.parse(); 
var canvas = html2obj.render(queue); 
var img = canvas.toDataURL(); 

window.open(img); 
    [1]: http://stac 

koverflow.com/questions/10457608/create-screenshot-of-webpage-using-html2canvas-unable-to-initialize-properly

+0

Спасибо за ваш ответ @Moeed все еще эта проблема существует. Я имею в виду, никаких изменений не произошло – user2745335

+0

, с чем вы сталкиваетесь? вы хотите показать свое изображение? –

+0

показать мне вывод var_dump ($ data); ---- var_dump ($ uri); ----- var_dump ($ im); –