发送图像到.NET Web服务

我正在开发一个使用.NET Web服务的iOS应用程序。 在其中一个Web服务中,我必须将图像作为HttpPostedFileBase发送到名为“ file ”的参数中,该参数将返回图像URL和状态参数作为响应。 其实我不确定什么是HttpPostedFileBase。 但是我试图把它作为字节发送。 我从WS获取图像URL为空。 我想WS调用工作正常,但问题是我发送图像的方式。 我正在使用下面的代码将图像数据追加到HTTP正文。

NSData *imageData = UIImageJPEGRepresentation(image, 1); [postData appendData:[[NSString stringWithFormat:@"--%@\r--\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"file.jpeg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:imageData]; [request addValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"]; [request addValue:[NSString stringWithFormat:@"%i", [postData length]] forHTTPHeaderField:@"Content-Length"]; [postData appendData:[[NSString stringWithFormat:@"--%@\r--\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

请让我知道我怎么得到这个工作。 让我知道如果你需要更多的细节。

谢谢。

对不起大家。 问题出在HTTP标头中。 上面的@FahriAzimov发布的链接( ios上传图片和文字使用HTTP POST )帮助了我。 我的不好,其实我很困惑,将会有一个不同的.NET Web服务的格式。

我必须像传统的Web服务那样发送图像。 工作代码如下:

 NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; [postData appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"image.jpg\"\r\n", @"file"] dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:imageData]; [postData appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [postData appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

非常感谢大家的帮助。

使用ASIHTTPRequest libraray,它非常好,你可以把图像作为附件发送到你的.net服务器上…. http://allseeing-i.com/ASIHTTPRequest/How-to-use

 here is sample code ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; // Upload a file on disk [request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"]; // Upload an NSData instance [request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];