iPhone アプリケーションで ASIFormDataRequest を使用して、録画したばかりのビデオを、ビデオの所有者を識別するために使用できる文字列と共にサーバーに送信しようとしています。そのためのコードは次のとおりです。
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSURL *urlvideo = [info objectForKey:UIImagePickerControllerMediaURL];
NSString *urlString=[urlvideo path];
NSLog(@"urlString=%@",urlString);
NSString *str = [NSString stringWithFormat:@"http://www.mysite.com/videodata.php"];
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSData *patientData = [_patientCode dataUsingEncoding:NSUTF8StringEncoding];
[request setFile:urlString forKey:@"video"];
[request setData:patientData forKey:@"patientcode"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request startSynchronous];
NSLog(@"responseStatusCode: %i",[request responseStatusCode]);
NSLog(@"responseString: %@",[request responseString]);
[picker dismissViewControllerAnimated:YES completion:nil];
}
すべてが正しく機能しているように見えます。ステータス コード 200 が返され、メソッドは期待どおりに終了します。ただし、サーバー上のphpファイルは何も受信していないようです。サーバー側の php コードに次の行を追加しました。
echo(count($_POST));
これは 0 を返すため、実際には ASIFormDataRequest によって何もポストされていないように見えます。以前に ASIFormDataRequest を使用したことがないため、見逃している簡単な手順があるように感じますが、どんな助けでも大歓迎です。
編集: に変更したsetData:patientData
ところsetPostValue:_patientCode
、投稿のその部分が正しく送信されるようになったので、機能しているように見えますsetPostValue
がsetData
、機能setFile
していないようです。