我正在尝试使用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];
有人认为这有什么问题吗? (我对这些东西很新,所以 我可能会有一些明显缺失的东西。)
非常感谢。
答案 0 :(得分:1)
你有没有尝试过addData而不是setData,它解决了我的问题。
[request addData:jpegImageData withFileName: filename andContentType:@"image/jpeg" forKey:@"photos"];
编辑:顺便说一句,您使用的服务器端是什么?
您的问题可能在您的密钥forKey:@"snapshot[image]"]
内部尝试虚拟变量密钥,例如forKey:@"mysnapshot"]
希望这有帮助