2017-02-25 5 views
0

Ich möchte das Bild auf den Server hochladen.Die Dienste für den Server ist in .NET geschrieben. Jetzt Server fragt mich, das Bild als Bytes von Daten nicht als multipart.Ich lade die Datei von unten code.Ich bekomme Antwort als Datei hochgeladen, aber Bild wird nicht angezeigt.Datei auf Server ohne Multipart in Ziel c hochladen?

[request setURL:[NSURL URLWithString:url]]; 
      [request setHTTPMethod:@"POST"]; 
      NSMutableData *body = [NSMutableData data]; 
      NSString *boundary = @"---------------------------14737809831466499882746641449"; 
      //NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
      //[request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

      [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[@"Content-Disposition: form-data; name=\"host_pic\"; filename=\"parkN.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:postData]; 
      [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

      // close form 
      [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

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

Bitte erklären Sie, was könnte das Problem sein. Wie kann ich solche Datei aufladen.

+0

Prüfung mit diesem am: http://stackoverflow.com/a/7289185/4831524 –

+0

Dann, wie man den Byte-Array senden Sie bitte an server.Can mycode aktualisieren? – iOSGuy

+0

für das überprüfen Sie diese ans http://Stackoverflow.com/a/38263070/4831524 –

Antwort

0

dann könnten Sie versuchen, JSON-Format POST.

NSError *error; 

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; 
NSURL *url = [NSURL URLWithString:@"<YOUR SERVER>"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url 
                 cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

[request setHTTPMethod:@"POST"]; 

UIImage *image = [UIImage imageNamed:@"image.png"]; 
NSString *byteArray = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 

NSDictionary *mapData = [[NSDictionary alloc] initWithObjectsAndKeys: byteArray, @"host_pic", 
        @"IOS TYPE", @"typemap", 
        nil]; 
NSData *postData = [NSJSONSerialization dataWithJSONObject:mapData options:0 error:&error]; 
[request setHTTPBody:postData]; 


NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

}]; 

[postDataTask resume]; 
+0

API Kerl sagte mir, ich muss nicht senden Schlüssel als host_pic mit Upload-Anfrage – iOSGuy

+0

dann müssen Sie folgen mit __multipart/form-data__ Upload von Bild –

+0

API unterstützt nicht mehrteilige Formulardaten & kann keinen Schlüssel senden – iOSGuy

Verwandte Themen