transformar jpg imagen from convertir convert cadena php base64

jpg - php download image from base64 string



Convertir cadena de Base64 a un archivo de imagen? (5)

Estoy tratando de convertir mi cadena de imagen base64 en un archivo de imagen. Esta es mi cadena Base64:

http://pastebin.com/ENkTrGNG

Usando el siguiente código para convertirlo en un archivo de imagen:

function base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, "wb" ); fwrite( $ifp, base64_decode( $base64_string) ); fclose( $ifp ); return( $output_file ); } $image = base64_to_jpeg( $my_base64_string, ''tmp.jpg'' );

Pero recibo un error de invalid image , ¿qué está mal aquí?


Debe quitar la parte que dice data:image/png;base64, al comienzo de los datos de la imagen. Los datos base64 reales vienen después de eso.

Simplemente quita todo hasta e incluyendo base64, (antes de llamar a base64_decode() en los datos) y estarás bien.


El problema es que los data:image/png;base64, se incluyen en los contenidos codificados. Esto dará como resultado datos de imagen no válidos cuando la función base64 lo decodifica. Elimine esos datos en la función antes de decodificar la cadena, como tal.

function base64_to_jpeg($base64_string, $output_file) { // open the output file for writing $ifp = fopen( $output_file, ''wb'' ); // split the string on commas // $data[ 0 ] == "data:image/png;base64" // $data[ 1 ] == <actual base64 string> $data = explode( '','', $base64_string ); // we could add validation here with ensuring count( $data ) > 1 fwrite( $ifp, base64_decode( $data[ 1 ] ) ); // clean up the file resource fclose( $ifp ); return $output_file; }


Manera fácil que estoy usando:

file_put_contents($output_file, file_get_contents($base64_string));


tal como esto

function save_base64_image($base64_image_string, $output_file_without_extension, $path_with_end_slash="" ) { //usage: if( substr( $img_src, 0, 5 ) === "data:" ) { $filename=save_base64_image($base64_image_string, $output_file_without_extentnion, getcwd() . "/application/assets/pins/$user_id/"); } // //data is like: data:image/png;base64,asdfasdfasdf $splited = explode('','', substr( $base64_image_string , 5 ) , 2); $mime=$splited[0]; $data=$splited[1]; $mime_split_without_base64=explode('';'', $mime,2); $mime_split=explode(''/'', $mime_split_without_base64[0],2); if(count($mime_split)==2) { $extension=$mime_split[1]; if($extension==''jpeg'')$extension=''jpg''; //if($extension==''javascript'')$extension=''js''; //if($extension==''text'')$extension=''txt''; $output_file_with_extension=$output_file_without_extension.''.''.$extension; } file_put_contents( $path_with_end_slash . $output_file_with_extension, base64_decode($data) ); return $output_file_with_extension; }


if($_SERVER[''REQUEST_METHOD'']==''POST''){ $image_no="5";//or Anything You Need $image = $_POST[''image'']; $path = "uploads/$image_no.png"; file_put_contents($path,base64_decode($image)); echo "Successfully Uploaded"; }