我开始研究 windows azure cloud 以及如何在 iOS 中使用它。我的目标是创建一个应用程序,上传用 iPhone 相机拍摄的照片并将其存储到 azure。
我在 www.windowsazure.com/ 上开设了一个 azure 帐户,并按照页面中的说明创建了移动服务。然后我下载了 quickstart xcode 项目,它会自动连接到我新创建的移动服务。
文本上传就像一个魅力我能够使用快速启动应用程序将文本存储到移动服务。当我想存储用 iPhone 相机拍摄的图像时,问题就开始了。
我创建了另一个视图来快速启动项目,我可以在其中启动相机,并在拍摄照片时将其存储到 UIImageView。然后,当我单击发布按钮时,我运行以下代码:
- (IBAction)PublishButtonPressed:(id)sender {
NSString *imageData = nil;
if (self.PhotoImageView.image != nil) {
NSData* data = UIImagePNGRepresentation(self.PhotoImageView.image);
[Base64 initialize];
imageData = [Base64 encode:data];
}
int tmp = imageData.length;
NSDictionary *item = @{ @"text" : self.ImageTextField.text, @"complete" : @(NO), @"imageString":imageData };
[self.todoService addItem:item completion:^(NSUInteger index){
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Photo uploaded successfully" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}];
}
我可以上传小于 6KB 的小型 PNG 和 JPG 文件,但我认为相机图像对于我的数据库来说太大了?还是太大而无法通过电话连接发送?我怎样才能让它变小?
我正在使用 TodoService 将数据上传到服务器。