Sie würden eine NSURLConnection mit einem NSMutableURLRequest, so etwas wie diese verwenden möchten:
NSMutableURLRequest *theRequest=[[NSMutableURLRequest alloc] init];
[theRequest addValue:@"attachment;filename=\"file2.gif\"" forHTTPHeaderField:@"Content-disposition"];
[theRequest addValue:@"image/gif" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"binary" forHTTPHeaderField:@"Content-Transfer-Encoding"];
[theRequest setHttpBody:myBodyNSDataObject];
// create the connection with the request
// and start loading the data
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
// Create the NSMutableData that will hold
// the received data
// receivedData is declared as a method instance elsewhere
receivedData=[[NSMutableData data] retain];
} else {
// inform the user that the download could not be made
}
Sie ändern können, oder setzen Header die NSMutableURLRequest Methode:
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field
Die Antwort wird sein, was auch immer der Server zurückkommt. Sie können Apple's documentation für den Rest der Delegate-Methoden überprüfen, die implementiert werden, um den Hauptteil der Antwort zurückzuerhalten. Sie sollten das NSData-Objekt haben, das den Inhalt der Datei darstellt, die Sie hochladen möchten. Das Gleiche mit FTP zu tun ist etwas komplizierter, aber das wird funktionieren, um den Dateikörper hochzuladen. Sie wollen Ihre NSData Objekt, um sicherzustellen, ist wie der Körper eines HTTP-Post eingerichtet, so dass Sie die Header wie ein:
[theRequest addValue:@"attachment;filename=\"file2.gif\"" forHTTPHeaderField:@"Content-disposition"];
[theRequest addValue:@"image/gif" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"binary" forHTTPHeaderField:@"Content-Transfer-Encoding"];
Und dann sollten Sie den Körper anhängen. Auf der Serverseite können Sie den Dateinamen und die Bytes erhalten, aus denen die Datei besteht.
Dies ist nicht genau der Code, den Sie verwenden sollten, aber es sollte Ihnen eine gute Idee für die weitere Vorgehensweise geben.