Nasıl bir PNG görüntü sunucu tarafı kurtarmak için, base64 veri bir dize
Nihilogic" JavaScript aracı PNG resimleri. için tuval çizimleri dönüştürmek için "Canvas2İmage var kullanıyorum Şu an ihtiyacım olan şey bu araç, bir sunucu üzerinde gerçek PNG dosyaları içine PHP kullanarak oluşturduğu bu base64 dizeleri açmaktır.
Kısacası, şu anda ne yaptığımı istemci tarafında bir dosya oluşturmak için kullanarak Canvas2İmage, base64 olarak kodlanmış veri almak ve sunucu AJAX kullanarak gönderin:
// 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
}
});
Bu noktada, "hidden.php" veri bloğu gibi görünüyordata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABE...
Bu noktadan itibaren, çok şaşırdım. Okuduğum kadarıyla, PHP kullanmak gerekiyor sanırımimagecreatefromstringişlevi, ama aslında base64 kodlanmış dize gerçek bir PNG görüntüsü oluşturmak ve benim sunucu üzerinde saklamak için nasıl emin değilim. Yardım lütfen!
CEVAP
Bu dizeden base64 görüntü veri ayıklamak, bunu çözmek gerekir ve diske kaydedebilirsiniz, zaten bir png olduğu için GD ihtiyacın yok o zaman.
$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);
Ve bir one-liner:
$data = base64_decode(preg_replace('#^data:image/\w ;base64,#i', '', $data));
Nasıl base64 dize javascript kullanara...
Nasıl Base64 dize içine bir görüntü dö...
Nasıl bir İmageView bunu göstermek içi...
MySQL - Nasıl dize uzunluğu ile seçin,...
PutExtra (nasıl kullanılır) ve getExtr...