2016-03-18 80 views
0

我無法從我的IOS應用程序上傳php服務器上的圖像。無法上傳IOS中的服務器上的圖像

這裏是我的代碼..

NSString *urlString = @"My URl"; 

NSURL* requestURL = [NSURL URLWithString:urlString]; 

// setting up the request object now 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ; 

[request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 


    // NSString *boundary = @"---------------------------147378098314876653456641449"; 
    NSString *BoundaryConstant = @"----------V2ymHFg03ehbqgZCaKO6jy"; 

    NSString* FileParamConstant = @"profileimage"; 


    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",BoundaryConstant]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

     ///--- 

    // post body 
    NSMutableData *body = [NSMutableData data]; 

    // add params (all params are strings) 
    for (NSString *param in dicSubmit) 
    { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"%@\r\n", [dicSubmit objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 


    NSData *imageData = UIImageJPEGRepresentation(self.imgprofile.image, 0.0f); 

    if (imageData) 
    { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"editprofileimage1.png\"\r\n", FileParamConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:imageData]; 
     [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 



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

    // setting the body of the post to the reqeust 
    [request setHTTPBody:body]; 

    // set the content-length 
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 

    // set URL 
    // [SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack]; 
    [request setURL:requestURL]; 
    [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
+0

可能是你沒有定義 「POST」 請求類型 – Jaimish

+0

的方法,請參閱https://stackoverflow.com /問題/ 27103728 /上載圖像的問題,在-的Xcode和-IOS/27103919#27103919 –

回答

0

嘗試使用AFNetworking

AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"your url"]]; 

     NSData *imageData = UIImagePNGRepresentation(self.m_clientPhoto.image); 

     NSMutableDictionary *dict=[[NSMutableDictionary alloc]init]; 
      [dict setValue:self.nameTextField.text forKey:@"name"]; 
      [dict setValue:self.countryCode1 forKey:@"countrycode"]; 
      [dict setValue:self.phone1 forKey:@"phone"]; 

     manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

     AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 


      [formData appendPartWithFileData:imageData name:@"img" fileName:@"photo.jpg" mimeType:@"image/jpeg"]; 

     } success:^(AFHTTPRequestOperation *operation, id responseObject) { 

      NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 


     } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

       NSLog(@"Error: %@ ***** %@", operation.responseString, error); 

      }]; 

    [op start]; 
相關問題