2010-03-19 27 views
0

我想將數據傳遞給服務器,並將文件作爲二進制數據存儲在數據庫中。iPhone:如何將XML數據嵌入NSData以上載到服務器?

NSData *myData = [NSData dataWithContentsOfFile:pathDoc]; 
pathDoc = [NSString stringWithFormat:@"<size>%d</size><type>%d</type><cdate>%@</cdate><file>%c</file><fname>File</fname>",fileSizeVal,filetype,creationDate,myData]; 

對此有何想法?

謝謝你, 米蘭

+0

您期望打印什麼? CDATA部分? Base-64編碼數據? – kennytm 2010-03-19 13:29:59

+0

我想通過服務器上的數據和存儲文件數據庫中的二進制數據 NSData * myData = [NSData dataWithContentsOfFile:pathDoc]; pathDoc = [NSString的stringWithFormat:@ 「%d%d%@%C文件」,fileSizeVal,文件類型,creationDate,myData的]; – milanjansari 2010-03-19 13:35:11

回答

0

,你應該能夠使用對象歸檔來創建一個序列化對象,然後發送到服務器。

+0

您好, 我很挫敗 你可以給我的代碼,所以我會用 Thakns你, – milanjansari 2010-03-20 08:10:42

1

此代碼沒有意義。

您創建一個帶有文件路徑的NSData對象,然後轉向並重新分配路徑var表示一個XML塊的字符串。它非常混亂,可能會導致錯誤。不要以這種方式重用變量。

在任何情況下,對數據進行編碼,以您使用NSString的字符串:

- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding 

任何您想要的然後,只需插入字符串。

編輯:

您好,對不起,我不知道如何 使用本 - (ID)initWithData:(NSData的 *)數據編碼:(NSStringEncoding)編碼在 我的代碼。

像這樣:(抱歉格式#2的編輯似乎是眨眼今天)

NSData *myData = [NSData dataWithContentsOfFile:pathDoc]; 
NSString *myDataString = [[NSString alloc] initWithData:myData encoding:NSUnicodeStringEncoding]; 
NSString *formatString = @"<size>%d</size><type>%d</type><cdate>%@</cdate><file>%c</file><fname>File</fname><data>%@</data>"; 
pathDoc = [NSString stringWithFormat:formatString,fileSizeVal,filetype,creationDate,myDataString]; 

NSUnicodeStringEncoding是幾個常量定義各種串編碼中的一種。請參閱NSString類的參考。你使用哪一個取決於你的服務器的期望。

祝你好運。

+0

你好, 對不起,我不知道如何使用這個 - (ID)initWithData:(NSData的*)數據編碼: (NSStringEncoding)編碼在我的代碼。 謝謝你, – milanjansari 2010-03-20 07:30:20

+0

請參閱編輯的詳細說明。不要忘記點擊答案旁邊的複選標記,以最好地解決您的問題。 – TechZen 2010-03-20 13:14:13

+0

謝謝我的問題解決了。 我非常感謝大家 – milanjansari 2010-03-22 07:02:54

1

將二進制數據嵌入到XML文檔中的最常見方法是將數據編碼爲ASCII。例如使用Base64。

相關問題