无法将UIImage上传到iOS中的服务器

时间:2014-03-29 17:17:48

标签: iphone ios7 xcode5

我一直在尝试在服务器上上传UIImage,但在上传之前我已将其转换为BASE64字符串。该方法是POST,我在body中发送带有其他参数的图像。已阅读与此相关的几个答案但是没有任何有用的东西。 这是我的代码

-(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];
}

在这种方法中,字符串是BASE64字符串,我发送其他参数,如移动设备,名称位置,地址,性别也在由&分隔的正文中。

2 个答案:

答案 0 :(得分:1)

我建议您使用GZiP压缩而不是BASE64转换。它会带来更好的结果。您可以从这里下载示例项目 Here

您可以使用Compression和uncompression中的GZIP类。

答案 1 :(得分:0)

我认为您的UTF8编码可能存在问题;你能检查一下

的结果吗?
- (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding
在你的代码中

清除那种可能性。