我知道我在问同样的问题,但我以前没有这方面的工作,我在使用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);
}
});
}