2013-10-03 1 views
1

Здесь мне нужно загрузить mp3-аудио с помощью метода post, но написал код для загрузки звука, но я не знаю, как включить параметры. любезно проверьте мой код и помогите мне приложить параметры.ios - загрузить аудио и дополнительные параметры в почтовом методе

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 

Мои параметры Идент и session.Could любое тело помочь мне для добавления этих параметров и значения

+0

Неужели вам это удалось? я хочу загрузить 2 аудиофайла, 1 изображение и 3 строки .. PLZ помочь в этом ... – Mak13

ответ

1

Вы можете использовать ASIHTTPRequest для отправки аудиофайлов и дополнительных параметров. Он отличается простотой использования. Всего две строки . Это мне очень помогло :-)

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setFile:@"YOUR FILE PATH WITH FILE EXTENSION" forKey:@"YOUR FILE KEY"]; 
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 линии над и для добавления дополнительных полей, например поле сеанса.

+0

Спасибо за этот ответ – dineshprasanna