我已经搜索了很多关于如何从iOS发送UIImageView到我的WCF服务,知道我使用xcode5。
你能帮我找一个解决方法吗?你可以在下面找到解决问题的方法,但我无法用它来解决。首先我创建了一个接受字符串作为参数的WCF服务:
Serice.cvs
public string InsertNewImage(string imageEncoded) {
//I added the method to convert the imageEncoded from base64
//Then insert the image in sql server DB.
}
IService.cs:
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "json/InsertNewImage/{id1}")]
string InsertNewImage(string id1);
在我的iOS代码中,我实现了一个按钮来调用我的Web服务,如下所示:
//Encode my UIIMage
-(NSString *)encodeToBase64String:(UIImage *)image {
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
//assign the Encode method result
NSString *imageStringEncoded = encodeToBase64String(myUIIMage);
NSString *str= @"http://serverIP/iOS/Service.svc/json/";
str=[str stringByAppendingFormat:@"InsertNewImage/%@" , imageStringEncoded];
str=[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *WcfSeviceURL = [NSURL URLWithString:str];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:WcfSeviceURL];
[request setHTTPMethod:@"POST"];
NSData *respData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
你可以帮我解决这个问题,或者建议我采用另一种方式来做到这一点。
谢谢
答案 0 :(得分:0)
我通过使用另一种发送Stream文件的方式解决了这个问题。 以下是我的所作所为:
我创建了一个接受参数作为流的WCF服务:
service.svc
public void SendFile(Stream img)
{
byte[] buffer = new byte[10000];
img.Read(buffer, 0, 10000);
FileStream f = new FileStream("D:\\sample.jpg", FileMode.OpenOrCreate);
f.Write(buffer, 0, buffer.Length);
f.Close();
img.Close();
}
Iservice.cd
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = @"/FileUploaded/")]
void SendFile(Stream img);
在iOS源代码中,我点击了一个按钮后添加了以下代码。
UIImage *image = [UIImage imageNamed:@"myImage.jpg"];
NSData *imageData = UIImageJPEGRepresentation(image, 90);
NSString *urlString = @"http://serverAddress.com/iOS/myService.svc/FileUploaded";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[NSData dataWithData:imageData]];
[request setHTTPBody: postBody];
NSData *respData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *respStr = [[NSString alloc] initWithData:respData encoding:NSUTF8StringEncoding];
希望这有助于某人。
谢谢