android - Decoding base64 Image String in Php -


i building android app, when registering user has supply information among profile picture, app encodes image base64 string , adds array list rest of other information supplied, problem decoding base64 string on server side image , saving image name database, if user did not upload image should set default image, have tried several methods have failed, if not include base64 image string in json post app runs smoothly meaning messing on decoding image , setting it, if run whole php code in browser works perfectly, stuck, phone going wrong?

if image supplied executes code

  if (imgpath !=null)          {             bitmapfactory.options options = new bitmapfactory.options();             options.insamplesize = 8;             final bitmap bitmaporg = bitmapfactory.decodefile(imgpath, options);            bytearrayoutputstream bao = new bytearrayoutputstream();             bitmaporg.compress(bitmap.compressformat.jpeg, 90, bao);             byte [] ba = bao.tobytearray();             string profile_pic= base64.encodetostring(ba, 0);               try {                 // building parameters                 list<namevaluepair> params = new arraylist<namevaluepair>();                 params.add(new basicnamevaluepair("username", username));                 params.add(new basicnamevaluepair("password", password));                 params.add(new basicnamevaluepair("fname", fname));                 params.add(new basicnamevaluepair("lname", lname));                 params.add(new basicnamevaluepair("email", email));                 params.add(new basicnamevaluepair("city", city));                 params.add(new basicnamevaluepair("nrc", nrc));                 params.add(new basicnamevaluepair("dob", dob));                 params.add(new basicnamevaluepair("cell", cell));                 params.add(new basicnamevaluepair("profile", profile_pic)); 

if image not supplied executes code:

  try {                  string profile_pic = null;                 // building parameters                 list<namevaluepair> params = new arraylist<namevaluepair>();                 params.add(new basicnamevaluepair("username", username));                 params.add(new basicnamevaluepair("password", password));                 params.add(new basicnamevaluepair("fname", fname));                 params.add(new basicnamevaluepair("lname", lname));                 params.add(new basicnamevaluepair("email", email));                 params.add(new basicnamevaluepair("city", city));                 params.add(new basicnamevaluepair("nrc", nrc));                 params.add(new basicnamevaluepair("dob", dob));                 params.add(new basicnamevaluepair("cell", cell));                 params.add(new basicnamevaluepair("profile", profile_pic)); 

and on server side following code execute once data received:

if (!empty($_post)) {      if(!empty($_post['profile']) || $_post['profile'] == null)     {        $image = $_post['profile'];         $binary=base64_decode($image);         $source = imagecreatefromstring($binary);            }      if (empty($_post['username']) || empty($_post['password']))        {          // create data json response          $response["success"] = 0;         $response["message"] = "please make sure fields filled";         die(json_encode($response));     }      $query        = " select 1 users username = :user";     //now lets update :user should     $query_params = array(         ':user' => $_post['username']     );       try {         // these 2 statements run query against database table.          $stmt   = $db->prepare($query);         $result = $stmt->execute($query_params);     }     catch (pdoexception $ex) {          $response["success"] = 0;         $response["message"] = "database error1. please try again!";         die(json_encode($response));     }       $row = $stmt->fetch();     if ($row) {          $response["success"] = 0;         $response["message"] = "i'm sorry, username in use";         die(json_encode($response));     }      $destination = 'avatars';     if(!isset($_post['profile']) ||         !is_uploaded_file($_post['profile']['tmp_name']) ||         $_post['profile'] == null )     {         $newimagename= 'default.jpg';         move_uploaded_file($_post['profile']['tmp_name'], "$destination/$newimagename");     }else{         $randomnum   = rand(0, 9999999999);         $imagename = str_replace(' ','-',strtolower($_post['profile']['name']));         $imagetype = $_post['profile']['type'];         $imageext = substr($imagename, strrpos($imagename, '.'));         $imageext = str_replace('.','',$imageext);         $imagename = preg_replace("/\.[^.\s]{3,4}$/", "", $imagename);         $newimagename = $imagename.'-'.$randomnum.'.'.$imageext;         move_uploaded_file($_post['profile']['tmp_name'],   "$destination/$newimagename");     }      $sql5="update users set propic='$newimagename' username = ':username'";     $sql6="insert users (propic) values ('$newimagename') username = ':username'";      $query = "insert users ( username,                                    fname,                                    lname,                                 password,                                   email,                                   city,                                   dob,                                   nrc,                                   cell,                                   propic)                            values ( :user,                                    :fnam,                                    :lnam,                                    :pass,                                     :emai,                                    :cit,                                    :do,                                     :nr,                                      :cel,                                    :newimagename )";      //again, need update our tokens actual data:     $query_params = array(         ':user' => $_post['username'],         ':fnam' => $_post['fname'],         ':lnam' => $_post['lname'] ,         ':pass' => md5($_post['password']),         ':emai' => $_post['email'],         ':cit'  => $_post['city'],         ':do'   => $_post['dob'],         ':nr'   => $_post['nrc'],         ':cel' => $_post['cell'],         ':newimagename' =>$newimagename);        //time run our query, , create user     try {         $stmt   = $db->prepare($query);         $result = $stmt->execute($query_params);     }     catch (pdoexception $ex) {         // testing, use die , message.          //die("failed run query: " . $ex->getmessage());          //or use use one:         $response["success"] = 0;         $response["message"] = "database error2. please try again!";         die(json_encode($response));     }       $response["success"] = 1;     $response["message"] = "username added!";     echo json_encode($response); 


Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -