Ios 使用post方法在服务器上上载图像

Ios 使用post方法在服务器上上载图像,ios,objective-c,xcode,Ios,Objective C,Xcode,我知道我在问同样的问题,但我之前并没有做过这方面的工作,我面临着使用post方法在服务器上上传图像的问题。请帮我解决这个问题。我不知道如何在本地服务器上上传图像。如果我使用下面的代码,我会收到一条错误消息: -(void)uploadImageWebService { NSString *urlString = @"http://localhost:8888/emsampleuploads/index.php/api/upload_media/"; // NSData *imageData

我知道我在问同样的问题,但我之前并没有做过这方面的工作,我面临着使用post方法在服务器上上传图像的问题。请帮我解决这个问题。我不知道如何在本地服务器上上传图像。如果我使用下面的代码,我会收到一条错误消息:

-(void)uploadImageWebService
{  
NSString *urlString = @"http://localhost:8888/emsampleuploads/index.php/api/upload_media/";
// NSData *imageData = UIImageJPEGRepresentation(newImageView.image,90);
NSString *post = [NSString stringWithFormat:@"any_media=%@",[mediaDic objectForKey:@"UIImagePickerControllerReferenceURL"]];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
long imageSize = postData.length;
NSLog(@"SIZE OF IMAGE: %.2f Mb", (float)imageSize/1024/1024);


    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
    [request setURL:[NSURL URLWithString:urlString]] ;
    [request setHTTPMethod:@"POST"];

    NSString *boundary = @"---------------------------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:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\".jpg\"\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[NSData dataWithData:postData]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary]dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body];

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"returnData = %@  returnString=%@",returnData,returnString);
}
错误-****错误:日志记录目录不存在/Users/atidan/Library/Developer/CoreSimulator/Devices/20DC5BB3-7414-4F4D-B9C8-EFCF1A50804C/data/Library/Logs/CrashReporter/DiagnosticLogs/

如果我使用以下代码,那么我会得到一本空白字典:

 -(void)uploadImageWebService
 { 
   NSString *post = [NSString stringWithFormat:@"any_media=%@",[mediaDic objectForKey:@"UIImagePickerControllerReferenceURL"]];
   NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
   NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
   NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
   [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@upload_media/",GLOBALURLDOMAIN]]];
   [request setHTTPMethod:@"POST"];
   [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
   [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
   [request setHTTPBody:postData];

   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //  [hud show:YES];
    NSURLResponse *response;
    NSError *error =nil;

    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSLog(@"responsedata =%@",responseData);
     if(error)
     {
         if ([response isKindOfClass:[NSHTTPURLResponse class]])
         {
             NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
             NSLog(@"HTTP Error: %ldl %@",(long) httpResponse.statusCode, error);
             return;
         }
         NSLog(@"Error %@", error);
         return;
     }
    if (responseData == NULL) {
    }
    else
    {
        NSDictionary *parsingResultLogin = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
        NSLog(@"parsingResultLogin = %@",parsingResultLogin);
    }
});
}

首先将图像保存在documents目录中获取您在应用程序的documents目录中复制的图像的url此url应该是您在调用中使用的路径以及文件名,作为要上载的文件路径。AFNetworking()是否有上载文件方法?