尝试使用ASIFormDataRequest将图像从iPhone上传到服务器

时间:2010-03-04 23:17:49

标签: iphone asihttprequest

我正在尝试使用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 个答案:

答案 0 :(得分:1)

你有没有尝试过addData而不是setData,它解决了我的问题。

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

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

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

希望这有帮助