2

我正在尝试使用 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]; 

有人看到这有什么问题吗?(我对这些东西还很陌生,所以可能有一些我明显遗漏的东西。)

非常感谢。

4

1 回答 1

1

您是否曾经尝试过 addData 而不是 setData,它适用于我的解决方案。

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

编辑:顺便说一句,您使用的是哪个服务器端?

您的问题可能在您的密钥内部forKey:@"snapshot[image]"]尝试虚拟变量密钥,例如forKey:@"mysnapshot"]

希望这可以帮助

于 2010-10-06T21:24:33.753 回答