AFNetworking上传 XXX.bin 文件遇到的问题

weixin_37015913 2017-12-18 05:45:48

最近公司要实现个小功能。就是在APP上实现运动相机的内置软件版本升级。由于公司没有后台,小弟是这样操作的:从公司网站上下载与运动相机固件最新的软件版本 该软件版本命名为 : XXX.bin 。我下载完成后保存在一个自定义的沙盒 documents 的目录下面。然后通过下面的方法上传到运动相机的域名的根目录下面。

( destinationPath 是当前下载的文件的沙盒目录准换成的 url 。urlString 是要上传的运动相机的根目录ip地址:格式为: http:// 192.168.1.23)

NSData *data = [NSData dataWithContentsOfURL:destinationPath];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/xml"];

[manager POST:urlString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {

[formData appendPartWithFileData:data name:@"XXX.bin" fileName:@"XXX.bin" mimeType:@"application/macbinary"];
// [formData appendPartWithFileURL:destinationPath name:@"XXX.bin" error:nil];

} success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) {
if (successBlock) {
successBlock(responseObject);
}

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (error) {
failureBlock(error);
}
}];



等上传成功后 我发现运动相机根目录下面的 XXX.bin 文件比下载到沙盒目录下的多了几十个字节,然后导致运动相机识别不了。大神们,这个是什么原因啊? mimeType的格式我试过了,也是不行。跪求各位大神解析一下,很急。。。。
...全文
429 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhao309 2017-12-28
  • 打赏
  • 举报
回复
楼上:你的功能类似动态部署的功能,lua跟js都能做,可以看看这篇博客。http://blog.csdn.net/ios_xumin/article/details/51829322
zgycsmb 2017-12-21
  • 打赏
  • 举报
回复
上传可采用别人封装好的类呀,网上应该有比较多
weixin_37015913 2017-12-19
  • 打赏
  • 举报
回复
现在我是单方面上传到指定ip的根目录下面(安卓版本的上传的话数据大小都没有变,也是单方面上传),接收方是没有任何操作的。还有其他方法可以解决这个问题吗?
大个啊 2017-12-19
  • 打赏
  • 举报
回复
原因应该是: appendPartWithFileData 采用 multipart form data 构造 body。接收方要自行剥离。
设备树(device tree)机制是Linux内核从linux-3.x版本开始引进的一种机制,目的是解决内核源码的arch/arm目录下代码混乱的问题:随着ARM生态的快速发展,在内核源码的arch/arm目录下,存放着几十种arm芯片和几百个开发板相关的源文件,很多开发板和处理器的中断、寄存器等相关硬件资源都在这个目录下以.c或.h的文件格式定义。而对于内核来说,与这些硬件耦合,会导致内核代码混乱不堪,每个开发板上运行的内核镜像都必须单独编译配置,无法通用。什么时候Linux内核能像Windows镜像那样,无论你的电脑什么配置,一个Windows安装包,都可以直接下载安装运行呢?设备树机制,实现了Linux内核和硬件平台的解耦:每个硬件平台的硬件资源使用一个设备树文件xxx.dts)来描述,而不是在arch/arm下以.c 或 .h 文件来定义。Linux内核是一个通用的内核,在启动过程中,在通过解析设备树中的硬件资源来初始化某个具体的平台。 引入设备树后,很多和内核驱动开发的工作也发生了变化:以往驱动工程师关注的头文件宏定义、寄存器定义,现在这些基本上不用关注,关注的重点则转向了如何根据硬件平台去配置和修改设备树文件。很多驱动的编程接口也发生了变化,开始慢慢使用device tree提供的编程接口去开发驱动。本期课程主要面向嵌入式开发人员,分享Linux下驱动开发所需要的设备树知识和必备技能

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧