2014-07-10 17 views
0

我已經學會二方法(可能還有更多的..)上傳圖像服務器..哪個是更好的(快)的方式來上傳圖片服務器上

1)創建的NSData,並將其添加到請求體
2)創建字節數組,並將其發送在JSON等簡單陣列

1)創建的NSData並將其加入到請求主體

從圖像創建的NSData使用此代碼

NSData *imageData = UIImagePNGRepresentation(myimage); 

,比請求主體

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"POST"]; 
[body appendData:[NSData dataWithData:imageData]]; 
[request setHTTPBody:body]; 

執行請求,並添加圖片,將在服務器上上傳。

2)創建字節數組,並將其發送在JSON等簡單陣列

創建圖像的字節數組

NSData *imageData = UIImagePNGRepresentation(myimage); 

const unsigned char *bytes = [imageData bytes]; 
NSUInteger length = [imageData length]; 
NSMutableArray *byteArray = [NSMutableArray array]; 
for (NSUInteger i = 0; i<length; i++) 
{ 
    [byteArray addObject:[NSNumber numberWithUnsignedChar:bytes[i]]]; 
} 

,也比使用JSON像任何其他陣列

發送它在請求

但是這是更好的解決方案或有另一種更快的方式..

回答

1

最簡單和最快的方式將發送使用正常的HTTP POST和HTML的圖像。

因爲您在任何情況下都使用NSMutableRequest來發送POST請求。因此,唯一重要的是數據的大小以及獲取原始圖像所需的處理。因此,爲了實現性能的顯着提升,您必須確保使用最小數量的塊通過網絡發送項目,並且處理開銷最小。

希望這article可以幫助您做出選擇。

如果你願意,你可以使用一些壓縮方案像this體積進一步縮小,如果你有固定大小的擔憂。

0

兩種方式都是O(n)的,但我天真的看NSData的做法表示它小1次副本傳過來的數據VS字節數組方法。發現差異的最好(唯一的方法)方式是否進行測試,以及差異是否與用戶體驗相關,這是極不可能的。

如果兩種方法的體型相似,應該可以簡化測試。這將消除將實際職位作爲變量所需的時間。然後只需衡量每道準備帖子的時間。