Created
October 7, 2015 10:47
-
-
Save jbruchanov/23e6b01dac9ce84ce7ff to your computer and use it in GitHub Desktop.
Upload file to PHP from IOS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)uploadImage:(UIImage*) image { | |
/* | |
turning the image into a NSData object | |
getting the image back out of the UIImageView | |
setting the quality to 90 | |
*/ | |
NSData *imageData = UIImageJPEGRepresentation(image, 90); | |
// setting up the URL to post to | |
NSString *urlString = @"http://www.scurab.com/ios.php"; | |
// setting up the request object now | |
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; | |
[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 stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"image.jpg\"\r\n"] 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); | |
} | |
/* PHP | |
<?php | |
$uploaddir = './uploads/'; | |
$file = basename($_FILES['userfile']['name']); | |
$uploadfile = $uploaddir . $file; | |
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { | |
echo "http://www.scurab.com/uploads/{$file}"; | |
} | |
?> | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment