[GELÖST] blob

psygonis

New member
ich habe eine Anwendung in Ajax, mit einem canvas Element
aus dem Canvas sollen die Daten per Blob auf den Server und dort wieder als Bild abgespeichert werden.


Javascript

Code:
    var fd = new FormData(document.forms["form1"]);
    fd.append("img_name", "Bildname Teil 1");
    fd.append("img_name_end", "Bildname Teil 2");
    fd.append("blobData", < blob Datei aus Canvas >);


    var xhr = new XMLHttpRequest();                                                                      //per Post zum Server senden
    xhr.open('POST', 'canvas/upload_data.php?cm_key=' + _cm_key + '&sessionId=' + _sessionId + '&token=' + _token, true); 
    xhr.onload = function() { verarbeitung des echo von upload_data.php  }
    xhr.send(fd);


Server (upload_data.php)

Code:
$upload_dir = < Pfad >
$img = $_REQUEST['blobData];
$img_name = $_REQUEST['name'];
$img_name_end = $_REQUEST['name_end'];
$file = $upload_dir . $img_name . "_" .$img_name_end . ".png";

header('Content-type:image/png');                                              
$image = imagecreatefromstring($img);
$success = imagepng($image, $file);
imagedestroy($image);

echo $file;

$img_name und $img_name_end sind da, $img wird gemeldet als leer oder unvollständig
Wenn wir das mit var_dump $img ausgeben lassen steht da blob mit länge 11
Aber der Blob ist viel größer.

Was ist da jetzt falsch dran?
 
Zuletzt bearbeitet von einem Moderator:
Ich habs gefunden. Eigentlich ganz einfach, wenn man es weiß. Der blob ist quasi identisch einem ausgewählten Bild mit dem FileFeld. Wenn man einen Blob per Post lädt gibt es automatisch das Array $_FILES.
Die Funktionalität ist genau wie beim Hochladen eines normale Bildes über die File Schaltfläche. Auf dem Server gibt es dann
$_FILES[meine ID]['tmp_name']
$_FILES[meine ID]['name'] )
und so weiter. Damit kann man dann mit move_uploaded_file() das Bild wieder aus dem temporären Speicher holen und abspeichern, wo man will.
 
Zurück
Oben