ios - 通过 POST 方法发送带有其他参数的图像
Posted
技术标签:
【中文标题】ios - 通过 POST 方法发送带有其他参数的图像【英文标题】:ios - Send image with other parameters by POST method 【发布时间】:2015-09-24 04:38:17 【问题描述】:我已经编写了一个代码来按用户在网络中添加项目并且它工作正常..现在我想添加另一个参数,即图像..我无法这样做..我的代码是
NSString *posturslString= [NSString stringWithFormat:@"ToDo_Item=%@&ToDo_Date=%@&AddedBy=%i",self.ToDo_Item, [dateformatter stringFromDate:self.ToDo_Date],self.AddedBy];
NSString *postData = [[NSString alloc] initWithString:posturslString];
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[postData dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = [[NSURLResponse alloc] init];
self.receivedData =[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSError * error;
NSDictionary *user = [NSJSONSerialization JSONObjectWithData:self.receivedData
options:0
error:&error];
NSNumber *successNumber = [user objectForKey:@"success"];
success = [successNumber integerValue];
我如何发送图像,即 nsdata
NSData *png=UIImagePNGRepresentation(self.itemImage.image);
连同我的其他参数。请帮忙。
【问题讨论】:
请参考此链接:Post data along with image 【参考方案1】:在 base64Encoded
中转换您的图像NSData *imageData = UIImageJPEGRepresentation(uploadImage, 1.0);
NSString *base64String = [imageData base64EncodedStringWithOptions:kNilOptions];
NSString *encodedString2 = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)base64String, NULL, CFSTR("!*'();:@&=+$,/?%#[]\" "), kCFStringEncodingUTF8));
并添加与其他关键字相同的图像
NSString *posturslString= [NSString stringWithFormat:@"ToDo_Item=%@&ToDo_Date=%@&AddedBy=%i&image=%@",self.ToDo_Item, [dateformatter stringFromDate:self.ToDo_Date],self.AddedBy,encodedString2];
注意:-还需要在服务器端实现图片的转换base64Encoded
【讨论】:
谢谢你..至少我有一个开始..在尝试实施后会回来.. :) 你的答案对我来说很好。我确实在服务器中解码了图像字符串以保存图像。:) @Jogendra.Com 如果我已经创建了base64String,为什么还需要百分比编码??以上是关于ios - 通过 POST 方法发送带有其他参数的图像的主要内容,如果未能解决你的问题,请参考以下文章
iOS 从带有 JSON 参数的 AFNetworking HTTP POST 方法获取 JSON 响应
iOS JSON解析Objective-C并传递POST方法参数