2013-05-22 43 views
0

我是新來的手機programming.Using下面的代碼我上傳圖像,音頻,用戶標題,標題。但在這裏用戶ID不是uploading.its給予響應像用戶ID是空的。如何上傳圖像,音頻以及文本到服務器iphone

UIImage * img = [UIImage imageNamed:@"Elephant.jpg"]; 
    NSData *imageData = UIImageJPEGRepresentation(img,0.2);  //change Image to NSData 
    NSString *file2 = [[NSBundle mainBundle] pathForResource:@"tone" ofType:@"mp3"]; 
    NSData *audioData = [NSData dataWithContentsOfFile:file2]; 
    NSString* captionn = [NSString stringWithFormat:@"Aslam"]; 
    int x = 45; 
    NSString *user_idd =[NSString stringWithFormat:@"%i",x]; 
    NSString* mobile_tauky_idd = [NSString stringWithFormat:@"2"]; 
    NSString * filenames = [NSString stringWithFormat:@"TextLabel"]; 
    NSLog(@"%@", filenames); 
    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]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"caption\"\r\n\r\n%@", captionn] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    //inputname 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"user_id\"\r\n\r\n%@", user_idd] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    //mobile_tauky_idd 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"mobile_tauky_id\"\r\n\r\n%@", mobile_tauky_idd] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    //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]]; 
    //Audio 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"audio\"; filename=\"%@\"\r\n",audioData] dataUsingEncoding:NSUTF8StringEncoding]]; 
    // [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"audio\"; filename=\"tone.mp3\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 


    [body appendData:[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"tone" ofType:@"mp3"]]]; 

    [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"); 

任何機構可以告訴我的錯誤是沒有在此代碼

+0

不太清楚!! .. 但爲什麼不把用戶標識放在請求頭中或網址.. 你需要配置網絡服務也... 有關上傳圖像等..很容易使用ASIHTTPRequest這項任務..hope,這有助於 –

回答

0

我做了很多服務器,以應用程序/應用服務器。我使用此代碼上傳照片。

-(void)uploadPhotoToServer 
{ 
NSMutableString *myString = [[NSMutableString alloc] initWithString:@"http://www.domain.com/"]; 
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myString] 
                   cachePolicy:NSURLRequestUseProtocolCachePolicy 
                  timeoutInterval:60]; 
[urlRequest setHTTPMethod:@"POST"]; 
NSString *boundary = @"----WebKitFormBoundaryQkZe6RUJZ2xbzXLB"; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
[urlRequest addValue:contentType forHTTPHeaderField: @"Content-Type"]; 
NSMutableData *body = [NSMutableData data]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[@"Content-Disposition: form-data; name=\"picBLOB\" filename=\"image001.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[@"Content-Type: image/jpg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[NSData dataWithData:photoData]]; // <<< photoData is a UIImage 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[urlRequest setHTTPBody:body]; 

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[NSURLConnection 
sendAsynchronousRequest:urlRequest 
queue:queue 
completionHandler: ^(NSURLResponse *response, 
         NSData *data, 
         NSError *error) 
{ 
    if (error == nil) 
    { 
     // no error... do something if needed. 
    } else 
    { 
     // error... do something if needed. 
    } 
}]; 
} 

對於文本,我只是將它包含在我的URL中。像這樣:

NSMutableString *myString = [[NSMutableString alloc] initWithString:@"http://www.domain.com/4DACTION/"]; 
    [myString appendString:@"userID45"]; 
    NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myString] 
                   cachePolicy:NSURLRequestUseProtocolCachePolicy 
                  timeoutInterval:60]; 

我的服務器端解析出URL值。

注:我使用4D服務器。 4DACTION是特定於該服務器的,可能不適用於您的服務器。

0

錯誤可能在您的服務器上。你可以發佈你解析這些變量的代碼部分嗎? (對不起,還沒有評論問題的能力,所以我必須「回答」才能得到澄清)

相關問題