Mam Base64 zakodowany png, jak zapisać obraz do pliku w PHP?

Jaki jest właściwy sposób w PHP tworzenia pliku graficznego (PNG), gdy mam kodowanie base64?

I ' ve been playing around with:


file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);

Czy muszę dekodować? czy powinienem korzystać z biblioteki gd?
 33
Author: mmattax, 2009-10-07

3 answers

Domyślam się, że po prostu musisz zadzwonić base64_decode() Na $_REQUEST['data'] przed zapisaniem go do pliku. To powinno wystarczyć:).

 33
Author: Thibault Martin-Lagardette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-07 17:21:53

Musisz użyć base64_decode (). I. Czasami to nie wystarczy. Oto cały kod, którego potrzebujesz:

$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
//saving
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);

P. S. użyłem tego kodu, aby uzyskać obraz PNG z HTML canvas.

 47
Author: Yevgeniy Afanasyev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-30 01:42:42

Myślę, że chcesz dekodować za pomocą base64_decode () chyba, że używasz go tylko tak, jak są tutaj Tutaj.

Rzecz, której jestem pewien, to to, że będziesz chciał wyczyścić $_REQUEST['id'] przed użyciem.

 6
Author: Chris Kloberdanz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-07 17:29:46