Używam narzędzia JavaScript "Canvas2Image" Nihilogica do konwertowania rysunków na płótnie do obrazów PNG. Potrzebuję teraz przekształcić ciągi base64 generowane przez to narzędzie w rzeczywiste pliki PNG na serwerze, używając PHP.Jak zapisać obraz z serwera PNG po stronie serwera, z łańcucha danych base64
W skrócie, co mam obecnie robi to, aby wygenerować plik po stronie klienta przy użyciu Canvas2Image, a następnie pobrać dane zakodowane base64 i wysłać je do serwera przy użyciu AJAX:
// Generate the image file
var image = Canvas2Image.saveAsPNG(canvas, true);
image.id = "canvasimage";
canvas.parentNode.replaceChild(image, canvas);
var url = 'hidden.php',
data = $('#canvasimage').attr('src');
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
base64data : data
}
});
W ten punkt "hidden.php" odbiera blok danych, który wygląda jak dane: image/png; base64, iVBORw0KGgoAAAANSUhEUgAABE ...
Od tego momentu, jestem prawie zakłopotany. Z tego, co przeczytałem, wierzę, że mam użyć funkcji PHP: imagecreatefromstring, ale nie jestem pewien, jak faktycznie utworzyć rzeczywisty obraz PNG z ciągu kodowanego base64 i zapisać go na moim serwerze. Proszę o pomoc!
trzeba go analizować. możesz wyodrębnić typ obrazu stamtąd, a następnie użyć base64_decode i zapisać ten ciąg w pliku według typu obrazu – Constantin
@Constantine Czy możesz bardziej konkretnie, proszę? –
$ data = $ _REQUEST ['base64data']; $ image = explode ("base64", $ dane); file_put_contents ('img.png', base64_decode ($ image [1])); – Constantin