Ich habe eine SVG-Datei, die ein DataURI-PNG generiert und das funktioniert gut. Und ich möchte, dass DataURI als Bild gespeichert wird, daher versuche ich, das DataURI über Ajax an einen anderen Server zu senden, der PHP ausführen kann. Aber ich kann es nicht zur Arbeit bringen.Generiere PNG-Datei mit PHP von DataURI geschickt über AJAX
Dies ist der Code die dataURI zum Erzeugen (das funktioniert)
var mySVG = document.querySelector('svg'), // Inline SVG element
tgtImage = document.querySelector('.tgtImage'); // Where to draw the result
can = document.createElement('canvas'), // Not shown on page
ctx = can.getContext('2d'),
loader = new Image; // Not shown on page
console.log(mySVG);
loader.width = can.width = tgtImage.width;
loader.height = can.height = tgtImage.height;
loader.onload = function(){
ctx.drawImage(loader, 0, 0, loader.width, loader.height);
tgtImage.src = can.toDataURL("image/png");
};
Dies ist der Ajax-Code an den externen PHP-Server zu senden:
$.ajax({
type: "POST",
data: {id:'testID',datauri: can.toDataURL("image/png")},
crossDomain: true,
//dataType: "jsonp",
url: "https://urltoscript.php",
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
Der PHP-Code das PNG
$dataUrl = $_REQUEST['datauri'];
$id = $_REQUEST['id'];
list($meta, $content) = explode(',', $dataUrl);
$content = base64_decode($content);
file_put_contents('./tmp-png/'.$id.'.png', $content);
die PNG-Generation Werke zu erzeugen, wenn manualy die dataURI einsetzen. Aber es funktioniert nicht mit der obigen Ajax-Funktion.
Vielen Dank!
Mögliches Duplikat von: http://stackoverflow.com/questions/23980733/jquery-ajax-file-upload-php – user2182349
Können Sie 'php' ändern? – guest271314
Ja. Kann php ändern –