2010-03-04 127 views
2

我试图使用ASIFormDataRequest从我的 iPhone应用程序发送照片图像到我的服务器。尝试使用ASIFormDataRequest将图像从iPhone上传到服务器

当我这样做时,服务器发送回一个错误 消息说“必须是图像文件”,暗示有 我的图像的格式有问题。 (当然, 可能不是问题...但它是一个开始的好地方。)我知道 本身在服务器上没有“问题”,因为我使用的以前的 方法(非ASIHTTPRequest基于)工作正常。 这里是我的iPhone代码:

 ASIFormDataRequest* request = [ASIFormDataRequest requestWithURL: 
[NSURL URLWithString:photoUploadURLString]]; 
     request.username = self.username; 
     request.password = self.password; 
     [request setPostValue:self.place.placeId forKey:@"place_id"]; 
     NSData* jpegImageData = UIImageJPEGRepresentation(self.photo, 
PHOTO_JPEG_QUALITY); 
     NSString* filename = [NSString stringWithFormat:@"snapshot_%@_ 
%d.jpg", self.place.placeId, rand()]; 
     [request setData:jpegImageData withFileName:filename 
andContentType:@"image/jpeg" forKey:@"snapshot[image]"]; 
     request.uploadProgressDelegate = self.progressView; 
     [request startSynchronous]; 

任何人都看到有什么不对吗? (我对这个东西相当陌生,所以 可能有些东西显而易见,我很想念。)

非常感谢。

回答

1

你有没有尝试addData而不是setData,它对我的​​解决方案起作用。

[request addData:jpegImageData withFileName: filename andContentType:@"image/jpeg" forKey:@"photos"]; 

编辑:顺便说一下,您使用的服务器端?

你的问题可能是你的关键forKey:@"snapshot[image]"]尝试的内部虚拟变量键像forKey:@"mysnapshot"]

希望这有助于

+0

嗨,fayasar - 我实际上是在一个完全不同的公司,现在,我不知道我最终如何解决这个问题!但是您推荐的解决方案:使用addData,并使用类似于快照[image]的键,听起来是正确的。谢谢你的帮助。 – 2010-10-07 16:34:47

+1

欢迎您,新公司好运 – fyasar 2010-10-07 19:35:35

相关问题