尝试使用ASIFormDataRequest将图像从iPhone上传到服务器
问题描述:
我试图使用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];
任何人都看到有什么不对吗? (我对这个东西相当陌生,所以 可能有些东西显而易见,我很想念。)
非常感谢。
答
你有没有尝试addData而不是setData,它对我的解决方案起作用。
[request addData:jpegImageData withFileName: filename andContentType:@"image/jpeg" forKey:@"photos"];
编辑:顺便说一下,您使用的服务器端?
你的问题可能是你的关键forKey:@"snapshot[image]"]
尝试的内部虚拟变量键像forKey:@"mysnapshot"]
希望这有助于
嗨,fayasar - 我实际上是在一个完全不同的公司,现在,我不知道我最终如何解决这个问题!但是您推荐的解决方案:使用addData,并使用类似于快照[image]的键,听起来是正确的。谢谢你的帮助。 – 2010-10-07 16:34:47
欢迎您,新公司好运 – fyasar 2010-10-07 19:35:35