2013-02-15 95 views
0

我開始學習Windows Azure雲以及如何在iOS上使用它。我的目標是創建一個應用程序,用於上傳iPhone相機拍攝的照片並將其存儲爲藍色。iOS照片上傳到天藍失敗

我向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]; 
    }]; 
} 

我可以上傳一個小PNG和JPG文件,小於6KB,但我覺得相機圖片太大了我的數據庫?或者它是否太大而無法通過手機連接發送?我怎樣才能讓它變小?

我正在使用TodoService將數據上傳到服務器。

+0

是「TodoService」的東西,我應該知道它是什麼?編輯:啊,來自Azure樣本的東西。 – 2013-02-15 08:06:28

+0

是的,這是Azure工具生成的用於處理上傳到移動服務的項目的類。 – Jimmy 2013-02-15 10:08:27

+0

我不相信存儲圖像數據的列在SQL數據庫端是一個varchar,但大小有限(但我可能是錯的)。另外,推薦的方法是不要將二進制(在本例中爲字符串)數據存儲在移動服務數據庫中,而是在本演練中使用blob存儲(http://www.nickharris.net/2012/09/windows-8 - 這是一個Windows商店樣本,但方法是一樣的,你會想要上傳一個圖像使用一個blob存儲sas生成的Windows Azure移動服務只需要考慮客戶差異)。 – Chris 2013-02-15 16:08:20

回答

0

您將要使用Blob存儲而不是SQL db。我建議使用SQL db作爲'虛擬'或保存其他信息,如使用配置文件的詳細信息。您可以通過「數據」選項卡中的腳本訪問Blob存儲。

+0

感謝Mlunes的回答。有沒有關於如何在「數據」選項卡中編寫腳本的教程? – Jimmy 2013-02-18 07:42:07

+0

我想我找到了我一直在尋找的鏈接後面克里斯貼上去以上:http://www.windowsazure.com/en-us/develop/mobile/resources-ios/ – Jimmy 2013-02-18 08:32:29

+0

沒問題 - 這裏的數據工作在腳本教程:http://www.windowsazure.com/en-us/develop/mobile/tutorials/validate-modify-and-augment-data-ios/我還建議通過這個集合有用的鏈接考慮看看:aka.ms/CommonWAMS – Mlunes 2013-02-20 17:28:39