Senden Leinwand Bild-und Formular-Daten zum server zu benennen png
Hallo ich brauche, um die Daten des Formulars eingereicht werden, zusammen mit den canvas-Bild. Verwenden Sie dann das Formular Daten zu dem Namen speichern der Datei auf dem server. Ich bin nur der Griff zu bekommen mit PHP, so dass jede Hilfe wäre toll.
Dies ist mein Beispiel arbeiten, die speichern die gleich benannte Datei auf den server.
HTML
<form action="name.php" method="post">
Name: <input type="text" name="fname">
Age: <input type="text" name="age">
<input type="button" onclick="saveImage();formSubmit();" value="Submit form">
</form>
JS
function saveImage(){
var xmlhttp;
xmlhttp=((window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP"));
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//do something with the response
}
}
xmlhttp.open("POST","upload.php",true);
var oldCanvas = document.getElementById('colors_sketch').toDataURL("image/png");
var img = new Image();
img.src = oldCanvas;
xmlhttp.setRequestHeader("Content-type", "application/upload")
xmlhttp.send(oldCanvas);
}
PHP
$data = file_get_contents('php://input');
$canvasImg = imagecreatefrompng($data);
$width = imagesx($canvasImg);
$height = imagesy($canvasImg);
$outImg = imagecreatetruecolor($width, $height);
$color = imagecolorallocatealpha($outImg, 255, 255, 255, 127);
imagefill($outImg, 0, 0, $color);
imagecopy($outImg, $canvasImg, 0, 0, 0, 0, $width, $height);
imagepng($outImg, 'test.png');
- Hat jemand noch andere Ideen, wie sonst sollte ich das tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind die Schritte zum senden Ihrer form und Bild upload.php
Erstellen Sie zunächst eine Daten-Paket zu senden, dass Ihr serialisiert, Bild und form. Hier verwende ich jquery serialisiert form (oder serialisieren es sich ohne jquery).
Dann POSTE es mittels AJAX an dein PHP-server:
Und schließlich fangen und verarbeiten es in php:
Diese Frage wurde bereits unzählige Male auf SO.
Ich bereits beantwortet die gleiche Frage hier:
https://stackoverflow.com/a/13198699/1090562
Kurz, dies kann erreicht werden mit dieser, für mehr details, Lesen Sie den link