My goal is to have a user send a photo from their iPhone to a server for processing.
How would I create a server that accepts HTTP Post requests.
您可以使用NSURLConnection
从 iPhone 向服务器发送 HTTP 请求。
如果您使用的是 PHP,您可以使用 POSTed 字段$_POST['fieldname']
此链接应该可以帮助您入门: http: //php.net/manual/en/reserved.variables.post.php
使用 PHP,您可以执行以下操作:
<?php
if(isset($_POST[someKey]))
{
// do something funky
}
?>
就像其他人说的那样,购买一个简单的网络托管服务器,比如 Hostgator (http://www.hostgator.com/) 然后在他们为您提供的 cPanel 后端,创建一个 FTP 帐户来上传文件,或者您可以使用 cPanel 上传文件。
将您的 PHP 脚本上传到服务器并进行测试。
这是编写 iPhone + PHP Web 服务的教程:
http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app
要发布到服务器,您可以使用 AFNetworking (https://github.com/AFNetworking/AFNetworking) 之类的东西
使用 AFNetworking 上传图片的示例代码(如果您没有点击,则从上面的链接中窃取:D):
NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];
AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:request] autorelease];
[operation setUploadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[operation start];