从iPhone上传的图片已损坏

时间:2011-02-25 16:03:58

标签: iphone wcf

我正在尝试从我的iPhone应用中拍照并上传到WCF REST服务。

我使用UIImagePickerController访问摄像头并将新照片分配给我视图中的UIImageView。

然后我使用UIImageJPEGRepresentation将其转换为“真实”数据。

NSData *imageData = UIImageJPEGRepresentation(imageView.image, 0.2);

然后我尝试向我的服务提交请求:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setFile:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"imageData"];

[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request startAsynchronous];

服务接收数据并将其写入我的网络服务器上的磁盘。但我无法在服务器上打开图像,因为Windows告诉我文件已损坏。我猜我需要在iPhone应用程序中设置某种编码或内容类型。上传完成后,我的服务会收到HTTP状态码200.

我已经制作了一个小型的C#客户端应用程序来测试该服务,当我使用这个客户端从我的Windows机器上传照片时一切都很好。所以我想这应该是我在iPhone的请求中遗漏的东西。

感谢您的阅读,以及您可以提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

在尝试了大量的方法后,我终于使用了它:

[request appendPostData:imageData];

而不是:

[request setFile:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"imageData"];