Pagina 1 din 1

Salvare image pe server din sir base64 in php

Scris: Mar Sep 12, 2017
de andras
Vreau sa generez codul de bare direct in php si sa salvez ca imagine intr-un fisier. Ceva de genul (pseudocod):

Cod: Selectaţi tot

$barcode = DNS2D::getBarcodePNG($vanz->id, 'QRCODE'); // generare string cod de bare
$fp = fopen('D:/imgb64.png','wb+');
fwrite($fp,$barcode);
fclose($fp);
Obtin stringul $barcode cu DNS2D::getBarcodePNG(), dar am nevoie de imagine. Este posibil?

Salvare image pe server din sir base64 in php

Scris: Mie Sep 13, 2017
de MarPlo
Daca metoda getBarcodePNG() returneaza un sir base64 pt. imagine, incearca asa:

Cod: Selectaţi tot

$barcode = DNS2D::getBarcodePNG($vanz->id, 'QRCODE'); // generare string cod de bare
$imgb64 = base64_decode($barcode);
file_put_contents('imgb64.png', $imgb64);

Re: Salvare image pe server din sir base64 in php

Scris: Mie Sep 13, 2017
de andras
Exact asa am facut, dar obtin un fisier imagine vid. Probabil nu se genereaza in base64.

Salvare image pe server din sir base64 in php

Scris: Mie Sep 13, 2017
de MarPlo
Daca prin aplicarea acestui cod afiseza imaginea inseamna ca DNS2D::getBarcodePNG() returneaza un sir base64 cu imaginea:

Cod: Selectaţi tot

echo '<img src="data:image/png;base64,'.DNS2D::getBarcodePNG($vanz->id, 'QRCODE').'" alt="barcode" />';
Nu stiu ce sistem/framework folosesti si nici cum functioneaza acea clasa php pt. barcode, dar vezi in documentatia ei poate are vreo metoda de salvare imaginea direct pe server.
- Sau ce returneaza exact getBarcodePNG().

Re: Salvare image pe server din sir base64 in php

Scris: Mie Sep 13, 2017
de andras
'Folosesc Laravel 5.4 iar clasa DNS2D returneaza un sir :

Cod: Selectaţi tot

$barcode = DNS2D::getBarcodePNG($vanz->id, 'QRCODE'); //iVBORw0KGgoAAAANSUhEUgAAAD8AAAA/AQMAAABtkYKcAAAABlBMVEX///8AAABVwtN+AAAAAXRSTlMAQObYZgAAAMpJREFUKJF10LsNgzAQBmBLLujCBmQRS1kLKiKxR1iFCeIV6NxackOkyJe73+BgSCyKT7rjXororelGUf0EAV4ZskZdvghkiL+nQJ+QQ7H+i+aE2Au4hW/XXgk8RtjmCfYIAvg1an0JPHns3KMV+CPkMbR1XIHzM64WIYHhFvcdcA0JxX5OyRmp4LgoTeTraigRbDVgwgNQ0KUtYjfTVIBejhY5gp6qsAMfKiAESHIB/hHwvQy2RxpegHUKICQHR3IGLi974eCyzoYPDn5O1wI1AGsAAAAASUVORK5CYII=
Problema e ca sint obligat sa generez codul de bare direct in PHP (controller) pentru ca preiau id-ul inregistrarii nou adugate in baza de date. Mai studiez problema.

Salvare image pe server din sir base64 in php

Scris: Joi Sep 14, 2017
de andras
Am clarificat, multumesc pentru ajutor.
Clasa DNS2D genereaza in base64, functioneaza cu secventa:

Cod: Selectaţi tot

$barcode = DNS2D::getBarcodePNG($vanz->id, 'QRCODE');
$imgb64 = base64_decode($barcode);
$filename = 'barcode_'.$vanz->id.'.png';
Storage::disk('barcode')->put($filename, $imgb64);
Ultima linie (specifica Laravel) fiind echivalenta cu file_put_contents($filename, $imgb64). Salut!