Ho un png codificato in base64, come posso scrivere l'image in un file in PHP?

Qual è il modo corretto in PHP per creare un file image (PNG), quando ho la codifica base64?

Ho giocato con:

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

devo decodificare? dovrei usare la libreria gd?

La mia ipotesi migliore è che devi semplicemente call base64_decode() su $_REQUEST['data'] prima di scriverlo sul file. Questo dovrebbe essere abbastanza 🙂

Devi usare base64_decode (). E. A volte non è sufficiente. Ecco tutto il codice che ti serve:

 $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); 

PS Ho usato questo codice per get l'image PNG dalla canvas html.

Penserei che vorresti decodificare con base64_decode () a less che tu non lo stia usando come se fossero QUI .

La cosa di cui sono sicuro è che vornetworking disinfettare $ _REQUEST ['id'] prima di usarlo.