dataurl к изображению для загрузки в php
Я создаю изображение, используя холст и используя следующий скрипт,
function getImage() {
var canvas1 = document.getElementById("images");
if (canvas1.getContext) {
var ctx = canvas1.getContext("2d");
var myImage = canvas1.toDataURL("image/jpg");
}
$('<form action="download.php" method="POST">' +
'<input type="hidden" name="aid" value="' + myImage + '">' +
'</form>').submit();
}
И в моем файле Download.php есть,
<?php $img = $_POST['aid'];
echo "<img src=".$img.">";
?>
это показывает изображение правильно. Но я хочу дать кнопку загрузки в формате JPG или PDF.
Как я могу использовать?
Я использовал base64_decode(); метод. Но я не могу решить.
Помоги мне...
2 ответа
Решение
Спасибо за все. но я получил ответ, используя,
file_put_contents();
Но вещь, я не знаю, как использовать. Наконец я получил это из этого ответа.
Ответ таков:
$data = 'data:image/png;base64,AAAFBfj42Pj4';
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('/tmp/image.png', $data);
Но я все еще жду кнопку загрузки с опцией формата изображения / PDF.
Попробуй это:
PHP повторил изображение со ссылкой
<?php
$img = $_POST['aid'];
echo "<a href='download_image.php'><img src=".$img."></a>";
?>
download_image.php
<?php
$img = "myimage.jpg";
// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
// browser must download file from server instead of cache
// force download dialog
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// use the Content-Disposition header to supply a recommended filename and
// force the browser to display the save dialog.
header("Content-Disposition: attachment; filename=".basename($img).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($img));
readfile("$img");
exit();
?>