PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, March 17, 2022

[FIXED] upload base64 encoded image to Mamp server

 March 17, 2022     ios, mamp, php     No comments   

Issue

I am sending image in base64 encoded format to server using following method

//for Upload Images......................

- (void)ImageUpload:(UIImage *)image
{
    NSData *imageData = UIImagePNGRepresentation(image);
    NSString *urlString=@"http://192.168.77.145/uploadImage.php";

    NSURL *url = [NSURL URLWithString:urlString];
    NSString *base64ImageString = [imageData base64EncodedStringWithOptions:kNilOptions];  // iOS 7+

    base64ImageString = [base64ImageString stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

    NSString *jsonReqString = [[NSString alloc] initWithFormat:@"{\"photo\":\"%@\",\"imageExtension\":\"%@\"}", base64ImageString,@"123"];


    NSString *post =[[NSString alloc] initWithFormat:@"request=%@",jsonReqString];

    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
    [request setURL:url];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    //[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

    [request setHTTPBody:postData];

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        if (!data)
        {
            NSLog(@"wifi error");
            NSLog(@"sendAsynchronousRequest error: %@", connectionError);

            return ;
        }
        else
        {
            NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

            }
        }

    }];
}

but I didn't get base64 string to server. I got null both parameter photo and imageextension.

here is my server side code

  <?php

$base = $_POST['photo'];
echo $base;
$filename = $_POST['imageExtension'];
echo $filename;
// Decode Image
$binary=base64_decode($base);
header('Content-Type: bitmap; charset=utf-8');

$file = fopen('uploadedimages/'.$filename, 'wb');

// Create File
fwrite($file, $binary);
fclose($file);

echo 'Image upload complete, Please check your php file directory';
 ?>

Appreciate for help


Solution

problem is on your second line of server side

your are trying to get value for key 'photo'

$base = $_POST['photo'];

you need to change that line

  $base = $_POST['request'];

After that you need to add following code

$baseImg = json_decode($base, true);
$filename = $baseImg["imageExtension"];
$tmpImg = $baseImg["photo"];

$binary=base64_decode($tmpImg);


Answered By - Vinod Jadhav
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing