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

setData の代わりに addData を試したことがありますか。私のソリューションではうまくいきました。

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

編集: ところで、どのサーバー側を使用していますか?

あなたの問題はあなたのキーの中にあるかもしれませforKey:@"snapshot[image]"]forKey:@"mysnapshot"]

お役に立てれば

于 2010-10-06T21:24:33.753 に答える