我找到了很多关于在Windows上通过C ++将文件上传到Web服务器的例子。
然而,经过很多的搜索(我认为我对谷歌很好!),我正在努力寻找任何帮助我在Mac上实现相同目的的例子。
有人能指出我如何使用C ++或Objective C将文件上传到Mac OS上的Web服务器吗?
可以通过HTTP / HTTPS 或 FTP / FTPS(或两者)。
谢谢!
答案 0 :(得分:3)
您可以使用'libcurl',请参阅维基百科上的this article。
答案 1 :(得分:1)
connection Kit可能就是你要找的东西
答案 2 :(得分:1)
您可能希望将NSURLConnection与NSMutableURLRequest一起使用,如下所示:
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
}
您可以使用NSMutableURLRequest方法修改或设置标头:
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field
响应将是服务器返回的任何内容。您可以查看Apple's documentation以获取要执行的其他委托方法以获取响应的正文。您应该有NSData对象表示您要准备上传的文件的内容。使用FTP做同样的事情有点复杂,但这可以用来发布文件正文。您需要确保您的NSData对象设置为HTTP帖子的正文,以便您设置如下标题:
[theRequest addValue:@"attachment;filename=\"file2.gif\"" forHTTPHeaderField:@"Content-disposition"];
[theRequest addValue:@"image/gif" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"binary" forHTTPHeaderField:@"Content-Transfer-Encoding"];
然后你应该追上身体。在服务器端,您可以获取文件名和组成文件的字节。
这不完全是您应该使用的代码,但它应该让您了解如何继续。