1

ここでは、post メソッドを使用して mp3 オーディオをアップロードする必要がありますが、オーディオをアップロードするためのコードを作成しましたが、パラメーターを含める方法がわかりません。親切に私のコードをチェックして、パラメーターを添付するのを手伝ってください。

NSString *baseurl = UploadAudio;
//    baseurl = [NSString stringWithFormat:@"%@user_id=%@&comments=%@&login_key=%@",baseurl,[[sharedvar userdict] objectForKey:@"user_id"],[self.audiodict objectForKey:@"comments"],[[sharedvar userdict] objectForKey:@"login_key"]];
    NSLog(@"baseurl :%@",baseurl);
    NSURL *dataURL = [NSURL URLWithString:baseurl];

    NSMutableURLRequest *dataRqst = [NSMutableURLRequest requestWithURL:dataURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];

    [dataRqst setHTTPMethod:@"POST"];

    NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo";
    NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
    [dataRqst addValue:headerBoundary forHTTPHeaderField:@"Content-Type"];

    NSMutableData *postBody = [NSMutableData data];

    // -------------------- ---- Audio Upload Status ---------------------------\\
    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; userfile=\"file upload\"; filename=\"uploadaudio.mp3\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: audio/mp3\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    //*******************load locally store audio file********************//
    NSString *audioUrl = [[self audiodict] objectForKey:@"audiopath"];
    NSLog(@"audioUrl :%@",audioUrl);

    // get the audio data from main bundle directly into NSData object
    NSData *audioData;
    audioData = [[NSData alloc] initWithContentsOfFile:audioUrl];

    // add it to body
    [postBody appendData:audioData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    // final boundary
    [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
//    [postBody appendData:postData];
    // add body to post

    [dataRqst setHTTPBody:postBody];

    NSURLConnection *connection = [NSURLConnection connectionWithRequest:dataRqst delegate:self];
    [connection start];  // connection

私のパラメーターはユーザーIDとセッションです。これらのパラメーターと値を追加するために体を助けてもらえますか

4

2 に答える 2

1

ASIHTTPRequestを使用して、Audiofile と追加のパラメーターを送信できます。色々と使いやすいです。わずか 2 行のコードです。とても助かりました :-)

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setFile:@"YOUR FILE PATH WITH FILE EXTENSION" forKey:@"YOUR FILE KEY"];
于 2013-10-03T13:02:29.087 に答える
1

行の直前に次の行// final boundaryを追加します。

//Append userid
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userid\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"%@\r\n", myUserID] dataUsingEncoding:NSUTF8StringEncoding]];

これらの 3 行を何度も使用して、さらにフィールド (セッション フィールドなど) を追加します。

于 2013-10-03T10:52:37.297 に答える