2014-03-29 3 views
0

서버에 UIImage를 업로드하려고했지만 업로드하기 전에 BASE64 문자열로 변환했습니다. POST이고 다른 매개 변수가있는 이미지를 본문에 전송하고 있습니다. . 이것과 관련된 몇 가지 답변을 읽었지만 유용하지 않습니다. 다음은 문자열는 BASE64 문자열이 방법에 내 코드UIImage 서버에 UIImage를 업로드 할 수 없습니다.

-(void)makeprofileWithData:(NSString *)urlstring andname:(NSString *)name gender:(NSString *)gender withstatus:(NSString *)status latitide:(NSString *)lat withLongitude:(NSString *)longitude andaddress:(NSString *)address andImage:(NSString *)string; 
{ 

    appdel=(AppDelegate *)[UIApplication sharedApplication].delegate; 
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",appdel.bseurl,urlstring]]; 
    receivedData = [[NSMutableData alloc] initWithLength:0]; 
    NSString *tempString=[NSString stringWithFormat:@"mobile=%@&name=%@&gender=%@&status=%@&address=%@&latitude=%@&longitude=%@&profile_pic=%@",[[NSUserDefaults standardUserDefaults]objectForKey:@"mobile"],name,gender,status,address,lat,longitude,string]; 


    NSData *requestData = [tempString dataUsingEncoding:NSUTF8StringEncoding]; 
    NSError *error; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPBody: requestData]; 
    [NSURLConnection connectionWithRequest: request delegate:self]; 
} 

, 그리고 내가 이동, 이름 위치, 주소, &로 구분하여 몸에도 성 같은 다른 매개 변수를 보낸다.

답변

1

BASE64 변환 대신 GZiP 압축을 사용할 것을 제안합니다. 더 나은 결과를 줄 것입니다. 여기에서 샘플 프로젝트를 다운로드 할 수 있습니다 Here

압축 및 압축 해제에서 GZIP 클래스를 사용할 수 있습니다.

+0

위의 코드에서 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? – ankyy

+0

나에 따르면 잘하고 있다고 생각하지만 문제는 서버 측에서 적절하게 디코딩하지 않습니다. BASE64 변환을 사용한다고 말합니다. 그에 따라 디코드됩니다. – Deepak

0

UTF8 인코딩에 문제가있는 것 같습니다. 그 가능성을 제거하기 위해 코드에

- (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding 

의 결과를 확인할 수 있습니까?

관련 문제