两个NSData对象 - base64编码为1“包”

时间:2016-05-09 00:08:08

标签: ios objective-c

我想通过网络发送2个NSData对象(视频+缩略图)。我想base64将这两个对象编码为一个包,以便将它们分块并发送。

接收器在接收到所有块之后可以解包并拥有2个对象。

如何将2个NSData对象组合成一个base64字符串,以便在接收端轻松解包?

2 个答案:

答案 0 :(得分:3)

您有几种选择。

  1. 您可以将两个文件压缩在一起并获取压缩文件的NSData。然后服务器可以解压缩生成的数据文件。

  2. 您可以在两个数据块之前加上一组简单的字节,告诉服务器即将发生的事情。数据可以是表示文件数的一个字节。然后,每个文件后面会有4个字节。 4个字节中的每一个都表示每个文件的数据长度。因此,您的数据将成为1字节计数,即4个字节的系列,然后是每个文件的字节,从而生成一个大的NSData,然后进行base64编码。然后服务器将解码数据,查看第一个字节以了解文件计数,然后读取文件长度集。然后根据每个长度,它将知道哪个数据部分属于每个文件。

  3. 您可以执行包含每个文件名和每个文件的HTTP POST。搜索“http post files multipart / form-data”。

答案 1 :(得分:1)

一种非常简单的方法是Base64对每个文件进行单独编码,并将生成的Base64字符串与一个永远不会出现在Base64数据中的字符连接起来,例如逗号。

相关问题