如何在iphone中上传参数以及图像和音频

如何在iphone中上传参数以及图像和音频,iphone,ios,objective-c,Iphone,Ios,Objective C,我不熟悉iPhone编程。有人能告诉我我上传了图像和音频以及这些参数吗 输入参数:caption,user\u id,mobile\u tauky\u id,blauky\u id,image,音频(caption和blauky\u id是可选的) 使用下面的代码我可以上传图像,同样我想先上传标题,用户id意味着一些整数值,例如:3,手机id还有一些整数值,例如:5,blauky\id也包括2,图像和音频 我可以在哪里附加这些参数?首先,我想附加标题,然后是用户id,然后是手机id,blauky

我不熟悉iPhone编程。有人能告诉我我上传了图像和音频以及这些参数吗

输入参数:
caption
user\u id
mobile\u tauky\u id
blauky\u id
image
音频
caption
blauky\u id
是可选的)

使用下面的代码我可以上传
图像
,同样我想先上传
标题
用户id
意味着一些整数值,例如:
3
手机id
还有一些整数值,例如:
5
blauky\id
也包括
2
图像
音频

我可以在哪里附加这些参数?首先,我想附加标题,然后是
用户id
,然后是
手机id
blauky id
,然后我必须附加
图像
音频
。任何人都可以告诉我如何在下面的代码中附加这些参数。我只能附加
图像
,但在此之前,我想附加标题、
用户id
手机id

NSString *urlString = @"http://182.73.152.59:82/php/tauky_services/codeigniter-restserver-master/index.php/api/uploadClass/uploadTauky/";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSLog(@"%@", request);

NSMutableData *body = [NSMutableData data];   

//Image
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"%@\"\r\n",imageData] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
 [request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"Response : %@",returnString);

if([returnString isEqualToString:@"Success ! The file has been uploaded"]) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Image Saved Successfully" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];
}
NSLog(@"Finish");

您可以逐个附加参数,如:-

NSURL *dataURL=[[NSURL alloc]initWithString:[NSString stringWithFormat:@"http://182.73.152.59:82/php/tauky_services/codeigniter-restserver-master/index.php/api/uploadClass/uploadTauky/"]];

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];

// -------------------- ---- caption ---------------------------\\


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

[postBody appendData:[caption  dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
//---------用户id---------------------------\

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

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

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

[postBody appendData:[blauky_id  dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


 // media part

// -------------------- ---- Image Upload Status ---------------------------\

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

    NSString *mediaType=@"Image";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"image.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: image/png\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    // get the image data from main bundle directly into NSData object
    NSData *imgData = UIImagePNGRepresentation(Your Image);
    // add it to body
    [postBody appendData:imgData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

}

 // -------------------- ---- Audio Upload Status ---------------------------\

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"type\"\r\n\r\n"
                          dataUsingEncoding:NSUTF8StringEncoding]];
    NSString *mediaType=@"Audio";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"myVoice.mp3\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: audio/caf\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *url = [NSString stringWithFormat:@"%@/record.mp3", documentsDirectory];

    // get the audio data from main bundle directly into NSData object
    NSData *audioData;
    audioData = [[NSData alloc] initWithContentsOfFile:url];
    // add it to body
    [postBody appendData:audioData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
}


// final boundary

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

// add body to post

[dataRqst setHTTPBody:postBody];

NSHTTPURLResponse* response =[[NSHTTPURLResponse alloc] init];
NSError* error = [[NSError alloc] init] ;

//synchronous filling of data from HTTP POST response
NSData *responseData = [NSURLConnection sendSynchronousRequest:dataRqst returningResponse:&response error:&error];

//convert data into string
NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding:NSUTF8StringEncoding];

NSLog(@"Response String %@",responseString);
//---------移动电话\u tauky\u id---------------------------\

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

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

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

[postBody appendData:[blauky_id  dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


 // media part

// -------------------- ---- Image Upload Status ---------------------------\

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

    NSString *mediaType=@"Image";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"image.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: image/png\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    // get the image data from main bundle directly into NSData object
    NSData *imgData = UIImagePNGRepresentation(Your Image);
    // add it to body
    [postBody appendData:imgData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

}

 // -------------------- ---- Audio Upload Status ---------------------------\

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"type\"\r\n\r\n"
                          dataUsingEncoding:NSUTF8StringEncoding]];
    NSString *mediaType=@"Audio";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"myVoice.mp3\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: audio/caf\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *url = [NSString stringWithFormat:@"%@/record.mp3", documentsDirectory];

    // get the audio data from main bundle directly into NSData object
    NSData *audioData;
    audioData = [[NSData alloc] initWithContentsOfFile:url];
    // add it to body
    [postBody appendData:audioData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
}


// final boundary

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

// add body to post

[dataRqst setHTTPBody:postBody];

NSHTTPURLResponse* response =[[NSHTTPURLResponse alloc] init];
NSError* error = [[NSError alloc] init] ;

//synchronous filling of data from HTTP POST response
NSData *responseData = [NSURLConnection sendSynchronousRequest:dataRqst returningResponse:&response error:&error];

//convert data into string
NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding:NSUTF8StringEncoding];

NSLog(@"Response String %@",responseString);
//------------------------blauky_id---------------------------\

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

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

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

[postBody appendData:[blauky_id  dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];


 // media part

// -------------------- ---- Image Upload Status ---------------------------\

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

    NSString *mediaType=@"Image";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"image.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: image/png\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    // get the image data from main bundle directly into NSData object
    NSData *imgData = UIImagePNGRepresentation(Your Image);
    // add it to body
    [postBody appendData:imgData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

}

 // -------------------- ---- Audio Upload Status ---------------------------\

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"type\"\r\n\r\n"
                          dataUsingEncoding:NSUTF8StringEncoding]];
    NSString *mediaType=@"Audio";
    NSLog(@"type %@",mediaType);
    [postBody appendData:[mediaType dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    //pass MediaType file

    [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Disposition: form-data; name=\"Data\"; filename=\"myVoice.mp3\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Type: audio/caf\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *url = [NSString stringWithFormat:@"%@/record.mp3", documentsDirectory];

    // get the audio data from main bundle directly into NSData object
    NSData *audioData;
    audioData = [[NSData alloc] initWithContentsOfFile:url];
    // add it to body
    [postBody appendData:audioData];
    [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
}


// final boundary

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

// add body to post

[dataRqst setHTTPBody:postBody];

NSHTTPURLResponse* response =[[NSHTTPURLResponse alloc] init];
NSError* error = [[NSError alloc] init] ;

//synchronous filling of data from HTTP POST response
NSData *responseData = [NSURLConnection sendSynchronousRequest:dataRqst returningResponse:&response error:&error];

//convert data into string
NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding:NSUTF8StringEncoding];

NSLog(@"Response String %@",responseString);

使用appendData就像您完成其他操作一样。这里的值没有上载。我得到的响应是:satatus:failed应该是空的userid“NSString*caption=@“Aslam”;NSString*user_id=@“10”;NSString*mobile_tauky_id=@“2”;NSString*blauky_id=@“0”";那么它也不上传也给每个参数的类型每个参数的类型意味着什么?