2012-05-25 9 views

Odpowiedz

10

Poniższy kod powinien pomóc

NSData *imageData = UIImagePNGRepresentation(image); 

NSURL *yourURL = ... 
NSMutableURLRequest *yourRequest = [NSMutableURLRequest requestWithURL:yourURL 
                  cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:60.0]; 
//Set request to post 
[yourRequest setHTTPMethod:@"POST"]; 

//Set content type 
[yourRequest setValue:@"image/png" forHTTPHeaderField:@"Content-Type"]; 

// Set authorization header if required 
... 

// set data 
[yourRequest setHTTPBody:imageData]; 


// create connection and set delegate if needed 
NSURLConnection *yourConnection = [[NSURLConnection alloc] initWithRequest:yourRequest 
                    delegate:self 
                  startImmediately:YES]; 

Należy pamiętać, że zakłada się, że korzystasz z ARC.

+0

To zadziałało dla mnie .. Dzięki. –

+0

ok, ale trzeba nadal korzystać z metod delegatów, aby otrzymać odpowiedź lub błąd, prawda? – marciokoko

+0

Jaki powinien być typ zawartości, jeśli publikuję NSData wykonane z NSString? – Satyam

1

Można użyć ASIHTTPRequest Biblioteka: http://allseeing-i.com/ASIHTTPRequest/

Wtedy to całkiem proste:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

// Upload an NSData instance 
[request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"]; 

informacji na temat korzystania z: http://allseeing-i.com/ASIHTTPRequest/How-to-use

+0

Od http://allseeing-i.com/ASIHTTPRequest/How-to-use: "Proszę zauważyć, że nie pracuję już nad tą biblioteką - może warto rozważyć użycie czegoś innego dla nowych projektów." Więc nie radzę korzystać z biblioteki. – Mert

2

Można sprawdzić tę odpowiedź, jeśli jesteś w porządku z użyciem NSURLConnection https://stackoverflow.com/a/10750428/591951

Ten post wyjaśnia, w jaki sposób POST n pliku audio, ale można przesłać dowolny plik, używając tej samej metody