0

我想将数据传递到服务器并将文件作为二进制数据存储在数据库中。

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];

对此有任何想法吗?

谢谢你,米兰

4

3 回答 3

1

在 XML 文档中嵌入二进制数据的最常用方法是将数据编码为 ASCII。例如使用 Base64。

于 2010-03-19T14:57:33.397 回答
1

这段代码没有意义。

您创建一个带有文件路径的 NSData 对象,然后转身并为路径 var 重新分配一个表示 XML 块的字符串。它非常混乱,可能会导致错误。不要以这种方式重用变量。

在任何情况下,要将数据编码为字符串,请使用 NSString:

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

然后只需将该字符串插入您想要的任何位置。

编辑:

您好,对不起,我不知道如何在我的代码中使用 - (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding。

像这样:(抱歉格式化 Stackoverflow 的编辑器今天似乎在闪烁)

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 类参考。您使用哪一个取决于您的服务器的期望。

祝你好运。

于 2010-03-19T14:33:33.240 回答
0

您应该能够使用对象归档来创建序列化对象,然后将其发送到服务器。

于 2010-03-19T14:32:05.190 回答