如何在iOS上将图像作为JSON上载到服务器

如何将图像上传到iPhone上的图库作为JSON? 我尝试了以下内容:

[Loading startLoading:YES]; NSString *urlString = [NSString stringWithFormat:@"http://railsboxtech.com/singing/jsn_song/register_response.php?accesstoken=%@",Access_Token]; //username, password, name, email, country NSString *parameter = [NSString stringWithFormat:@"username=%@&password=%@&fname=%@&email=%@&lname=%@&btnImage4=%@",userField.text,passField.text,fnameField.text,emailField.text,lnameField.text,btnImage4]; NSConnection *conn = [[NSConnection alloc] initWithDelegate:self]; [conn sendRequest:urlString withParaMeter:parameter withMethod:@"POST" withTag:1]; [conn startAsynchronousRequest]; 

如果你想上传一个图像作为一个string,你必须将你的图像数据转换为Base64,然后你可以使用上面的方法:

要转换为base64string,请参阅此堆栈溢出答案 。 然后,您可以使用您的代码上传。

其他方式

你可以直接上传一个图像,如下所示:

 -(void)uploadImage { NSData *imageData = UIImagePNGRepresentation(yourImage); NSString *urlString = [ NSString stringWithFormat:@"http://yourUploadImageURl.php?intid=%@",1]; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\"\r\n", 1]] 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]]; [request setHTTPBody:body]; [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; }