Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting Internal Error 500 using MKNetworking Image Upload PHP
    primarykey
    data
    text
    <p>I have switched from using the normal way to upload images (Didnt have it working then) to using MKNetworking to assist me with the uploading process, im using this way because i have found i get better error responses and its helping resolve my issues. I have gotten a NSLog response with an error reading</p> <pre><code>2013-05-03 10:52:25.961 atmebeta[2420:907] Returning num rows 2013-05-03 10:52:25.967 atmebeta[2420:907] Returning num sections 2013-05-03 10:52:34.607 atmebeta[2420:907] -[MKNetworkEngine reachabilityChanged:] [Line 198] Server [atmeapp.com] is reachable via Wifi 2013-05-03 10:52:37.066 atmebeta[2420:907] -[MKNetworkOperation operationFailedWithError:] [Line 1345] Friday, May 3, 2013, 10:52:37 AM Pacific Daylight Time Request ------- curl -X POST "http://atmeapp.com/addavatar.php" -d "email=ooo@ooo.com" -------- Response -------- &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;&lt;/title&gt; &lt;link rel="stylesheet" type="text/css" href="css/main.css" /&gt; &lt;!--[if lt IE 9]&gt; &lt;link rel="stylesheet" type="text/css" href="css/ie_8.css" /&gt; &lt;![endif]--&gt; &lt;/head&gt; &lt;body&gt; &lt;div id="block_error"&gt; &lt;div&gt; &lt;h2&gt;Error 500 Internal Server Error&lt;/h2&gt; &lt;p&gt;The web server is misconfigured please contact aaron@teknologenie.com&lt;/p&gt; &lt;p&gt;Please try to access the site later.&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; , [The operation couldn’t be completed. (NSURLErrorDomain error 500.)] 2013-05-03 10:52:37.072 atmebeta[2420:907] Error Domain=NSURLErrorDomain Code=500 "The operation couldn’t be completed. (NSURLErrorDomain error 500.)" UserInfo=0x1d993d40 {Accept-Ranges=bytes, Server=Apache, Content-Length=693, Content-Type=text/html, Date=Fri, 03 May 2013 17:52:34 GMT} 2013-05-03 10:52:37.102 atmebeta[2420:907] -[MKNetworkOperation operationFailedWithError:] [Line 1353] State: 0 </code></pre> <p>I can successfully upload images through a html form, so im certain my php.ini is fine and im allowed to upload way more then what im asking to upload on my iPhone. </p> <p>FileUploadDemoViewController.h</p> <pre><code>// // fileUploadDemoViewController.h // fileUploader // // Created by Michael Roling on 5/7/12. // Copyright (c) 2012 NA. All rights reserved. // #import &lt;UIKit/UIKit.h&gt; #import "fileUploadEngine.h" @interface fileUploadDemoViewController : UIViewController &lt;UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate&gt; @property (strong, nonatomic) fileUploadEngine *flUploadEngine; @property (strong, nonatomic) MKNetworkOperation *flOperation; @end </code></pre> <p>FileUploadDemoViewController.m</p> <pre><code>// // fileUploadDemoViewController.m // fileUploader // // Created by Michael Roling on 5/7/12. // Copyright (c) 2012 NA. All rights reserved. // #import "fileUploadDemoViewController.h" #import "MyClass.h" @interface fileUploadDemoViewController () @end @implementation fileUploadDemoViewController @synthesize flUploadEngine = _flUploadEngine; @synthesize flOperation = _flOperation; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } - (IBAction)uploadPhoto:(id)sender { UIActionSheet *photoSourcePicker = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles: @"Take Photo", @"Choose from Library", nil, nil]; [photoSourcePicker showInView:self.view]; } - (void)actionSheet:(UIActionSheet *)modalView clickedButtonAtIndex:(NSInteger)buttonIndex { switch (buttonIndex) { case 0: { if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.delegate = self; imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff; imagePicker.allowsEditing = YES; [self presentViewController:imagePicker animated:YES completion:NULL]; } else { UIAlertView *alert; alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"This device doesn't have a camera." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; } break; } case 1: { if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePicker.delegate = self; imagePicker.allowsEditing = YES; [self presentViewController:imagePicker animated:YES completion:NULL]; } else { UIAlertView *alert; alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"This device doesn't support photo libraries." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; } break; } } } - (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self dismissViewControllerAnimated:YES completion:NULL]; NSData *image = UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage], 0.1); self.flUploadEngine = [[fileUploadEngine alloc] initWithHostName:@"http://www.atmeapp.com" customHeaderFields:nil]; NSMutableDictionary *postParams = [NSMutableDictionary dictionaryWithObjectsAndKeys: [MyClass str], @"email", nil]; self.flOperation = [self.flUploadEngine postDataToServer:postParams path:@"/addavatar.php" ]; [self.flOperation addData:UIImageJPEGRepresentation(image, 0.5) forKey:@"userfile" mimeType:@"image/jpeg" fileName:image]; [self.flOperation addCompletionHandler:^(MKNetworkOperation* operation) { NSLog(@"%@", [operation responseString]); /* This is where you handle a successful 200 response */ } errorHandler:^(MKNetworkOperation *errorOp, NSError* error) { NSLog(@"%@", error); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil]; [alert show]; }]; [self.flUploadEngine enqueueOperation:self.flOperation ]; } @end </code></pre> <p>fileUploadEngine.h</p> <pre><code>// // fileUploadEngine.h // fileUploader // // Created by Michael Roling on 5/7/12. // Copyright (c) 2012 NA. All rights reserved. // #import "MKNetworkEngine.h" @interface fileUploadEngine : MKNetworkEngine -(MKNetworkOperation *) postDataToServer:(NSMutableDictionary *)params path:(NSString *)path; @end </code></pre> <p>fileUploadEngine.m</p> <pre><code>// // fileUploadEngine.m // fileUploader // // Created by Michael Roling on 5/7/12. // Copyright (c) 2012 NA. All rights reserved. // #import "fileUploadEngine.h" @implementation fileUploadEngine -(MKNetworkOperation *) postDataToServer:(NSMutableDictionary *)params path:(NSString *)path { MKNetworkOperation *op = [self operationWithPath:path params:params httpMethod:@"POST" ssl:NO]; return op; } @end </code></pre> <p>and last but not least, my php</p> <pre><code>$mysqli = new mysqli($host, $username, $password, $database); if ($stmt = $mysqli-&gt;prepare("UPDATE `user` SET imagepath=? WHERE email=?")) { $stmt-&gt;bind_param('ss', $albumname, $email); $email = $_POST['email']; $uploaddir = 'images/users/'; $file = basename($_FILES['userfile']['name']); $uploadfile = $uploaddir . $file; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { } $albumname = $uploadfile; $stmt-&gt;execute(); $stmt-&gt;close(); } else { printf("Prepared Statement Error: %s\n", $mysqli-&gt;error); } $mysqli-&gt;close(); </code></pre> <p>im not getting any errors in the php logs on my servers, </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload