这几天在做一款多任务断点上传下载的功能 , 由于PC端先搭起来 , 所以很多接口或者衔接方式和移动端是没有任何沟通的 .
简单来说 , 我们的上传下载是分段的 , 上传时需要将内容转换成流 , 然后自行切割 , 再转换成16进制字符串 ,再加密进行传输, 后台存储和加密也都是分段 , 下载亦是如此 . 在上传前 , 需要拿需要上传的内容请求服务器进行验证 , 期间遇到一个小坑 , 当我把图片转换成data后 , 再将data转换成16进制进行加密后发现得到的字符串为nil . 打断点得出 , 是在data转换字符串那一步 , 没有成功 .源码如下 :
//转换格式,md5加密
NSData *data = UIImagePNGRepresentation(image);
NSString *imageDataStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSString *newImageStr = [imageStr md5String];
后面查了一些资料 , 才得
iOS开发:图片与NSString相互转换及Base64编码问题

在实现多任务断点上传下载功能时,遇到图片转换为16进制字符串后加密得到nil的问题。原因可能是data过大或包含非法UTF-8字符。解决方案是使用Base64编码进行转换,避免此类问题。此外,还分享了一个关于如何将包含数组的字典转换为JSON的白痴小坑。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



