我想通过网络发送2个NSData对象(视频+缩略图)。我想base64将这两个对象编码为一个包,以便将它们分块并发送。
接收器在接收到所有块之后可以解包并拥有2个对象。
如何将2个NSData对象组合成一个base64字符串,以便在接收端轻松解包?
答案 0 :(得分:3)
您有几种选择。
您可以将两个文件压缩在一起并获取压缩文件的NSData
。然后服务器可以解压缩生成的数据文件。
您可以在两个数据块之前加上一组简单的字节,告诉服务器即将发生的事情。数据可以是表示文件数的一个字节。然后,每个文件后面会有4个字节。 4个字节中的每一个都表示每个文件的数据长度。因此,您的数据将成为1字节计数,即4个字节的系列,然后是每个文件的字节,从而生成一个大的NSData
,然后进行base64编码。然后服务器将解码数据,查看第一个字节以了解文件计数,然后读取文件长度集。然后根据每个长度,它将知道哪个数据部分属于每个文件。
您可以执行包含每个文件名和每个文件的HTTP POST。搜索“http post files multipart / form-data”。
答案 1 :(得分:1)
一种非常简单的方法是Base64对每个文件进行单独编码,并将生成的Base64字符串与一个永远不会出现在Base64数据中的字符连接起来,例如逗号。