How to insert/store images in MySQL database from XCode via PHP using JSON?
3
-
In xcode getting imagedata from Uiimageview this image i want to save it in mysql so that i m using PHP via Json parser.help mexcodemaddy– xcodemaddy2010-11-29 06:18:48 +00:00Commented Nov 29, 2010 at 6:18
-
20954 bytes.I m storing employee details on server,via PHP from xcode except image all details are stored in MySql. i want to save employee image. how to send imagedata Through NsUrl to PHP and php code for insert image into mysql DB? help me..xcodemaddy– xcodemaddy2010-11-29 08:48:19 +00:00Commented Nov 29, 2010 at 8:48
-
how to insert images as blob datatype into mysql DB.How to send images through json from xcode to insert.can anybody send php script? help me...Thanksxcodemaddy– xcodemaddy2010-12-13 04:51:26 +00:00Commented Dec 13, 2010 at 4:51
Add a comment
|
1 Answer
From the xcode, you do:
-(void) uploadImage: (UIImage *)image
{
NSData *imageData = UIImageJPEGRepresentation(image, 10);
// setting up the URL to post to
NSString *urlString = @"http://url.of.your.server/imagesupload.php";
// setting up the request object now
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
/*
add some header info now
we always need a boundary when we post a file
also we need to set the content type
You might want to generate a random boundary.. this is just the same
as my output from wireshark on a valid html post
*/
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
/*
now lets create the body of the post
*/
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"imagename.jpg\"\r\n",index] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// setting the body of the post to the reqeust
[request setHTTPBody:body];
// now lets make the connection to the web
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(returnString);
}
From the PHP, you do:
function imageUpload()
{
// Make sure the user actually
// selected and uploaded a file
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
// Temporary file name stored on the server
$tmpName = $_FILES['image']['tmp_name'];
// Read the file
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
// Create the query and insert
// into our database.
$query = "INSERT INTO tbl_images ";
$query .= "(image) VALUES ('$data')";
$results = mysql_query($query, $link);
// Print results
print "Thank you, your file has been uploaded.";
}
else {
print "No image selected/uploaded";
}
// Close our MySQL Link
mysql_close($link);
}