客户端文件上传服务器看我就够了(支持14种文件格式上传)

由于项目需求,要上传文件到服务器,以前也做过,但是两次所采用的协议有所不同.所以纠结了一天终于搞好了,而且文件格式支持14种.

先来看看后台商定的上传文件协议:HTTP multipart/form-data

如果你们公司后台也是接受这种协议上传文件的话,那么我可以说你已经完成了,因为我已经替你们填了一次这个坑了.啊哈哈哈哈.可能有点嚣张了.

那么支持的文件格式都有哪些了:txt、doc、xls、docx、xlsx、jpg、jpeg、gif、png、pdf、mp3、mp4、ppt、pptx

这么多的格式,应该能够满足你们的需求了。

如果还不够就联系我,或者自己去尝试尝试写写.毕竟路很长,还是要自己慢慢一步步走的.

好了废话不多说了,先说一下,我分别采用了AFNetworking3.1.0最新版本和AFNetworking2.6版本.分被采用AFHTTPRequestOperationManager,和AFHTTPSessionManager.是不是我做的很全面.

先说2.6版本的文件上传.看代码再BB

AFHTTPRequestOperationManager上传文件


文件上传接口

看到上面的代码,不明白是因为我将文件上传进行了封装,并且通过block进行回调,将成功和失败的结果带出.

先看需要的参数都有一个NSData类型,一个是KFileMineType类型,然后就没有了.

好了进入方法内部看看:


文件上传参数构建

看到第一个的时候可能有些同学不明白KFileMineType这个枚举到底是什么东西,不要慌继续往下看,你就会明白的.现在看这张图的第一句,我给字典写了一个分类,有一个mimeType方法,来获取一个字典,然后将枚举传入,最终这个字典会返回上传文件所需的参数mimeType和文件后缀名也就是.ppt等然后上传文件时,后台有时需要让你携带参数,但是我的这次是没有的所以就是nil,第二个适用于其他接口,所以在文件上传时也为nil,URL为上传文件的后台地址,cmd可能和你们就无关了,我们后台定义的而已一会你就知道干什么了.然后就是上传文件所需要的data和mimeType,fileType.成功和失败的blcok.


AFHTTPRequestOperationManager


post请求参数

上面这段是上传文件时,第一个调用的方法,作用是来配置上传文件时post请求所携带的参数,这段大家可以省略,因为各个服务器的参数都不同所以,大家可以跳过这个方法,

再看下面这个方法的调用是创建AFHTTPRequestOperationManager,并且对responseSerializer

做出设置,代码如下


创建AFHTTPRequestOperationManager

if是我判断接口是不是上传文件.


设置请求头

然后就是开始请求上传图片的步骤了


上传图片的方法


af提供了上传的方法,我们只是添加一下上传文件然后上传就OK了.然后判断后台返回的code如果成功就将返回结果返回,如果失败就返回失败原因.

现在我们来看一下大家疑惑的那个枚举都是什么:


枚举

这个枚举其实代表的都是文件格式.

那么最后是如何将枚举转成字符串的啦.那就要大家移步到我定义的那个字典的分类中去看那个方法.


枚举转字符串1



美剧转字符传2

通过这个方法,我可以将传入的枚举值转换成我所需要的文件格式和mimetype,再通过字典返回.这样就完成了转换.那么还有人会问,你的这写个mimeType是怎么搞出来的.那么就在下面我会讲一下是怎么做的.我给字符串也谢了一个扩展.


获取mimetype

这个文件必须导入af,因为这个方法内部很多都是来自MobileCoreServices.framework.但是af中已经有了这个库,所以我们直接引入af就可以了.

看到这里基本的文件上传就完成了,包括14中文件格式.本人亲身测试过,都能完成文件上传.

AFHTTPRequestOperationManager的就讲完了,下面就是使用最新版的af上传文件,基本上都是相同的不同的地方只有网络请求这块发生不同.先看代码.

使用AFHTTPSessionManager上传文件

AFHTTPSessionManager文件上传

都只苹果放弃了NSURLConnect,引入了NSURLSession,这也是af最新版本的请求方式,采用session来发起网络请求.

换汤不换药,基本上都是类似的.代码就在上面,如果有需要可以参考一下.

好了上传文件,就说到这了.有什么不懂可以联系我.

如果喜欢小编,可以点击关注,我会不定期的更新一些文章,也可以关注我的专题

本人联系方式:qq:513961360

email:513961360@qq.com

也可以加我们的qq群希望能与朋友们一起聊天和学习.群里还有很多iOS开发者,帮助我们解决问题,并且同时学习.

qq群号:580284575

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,067评论 25 707
  • 昨天一个朋友告诉我,他被提拔成公司营销总监了!他说听到这个消息他很震惊,也很意外,因为他刚刚被提拔成大区总监还没过...
    艾西西阅读 435评论 0 2
  • 上帝真的不会偏待一个人,不知道是哪一天,我删掉了所有曾经有过的可能:暧昧、不舍、或者被追求。 然后大年三十的前一天...
    卑微的风阅读 146评论 0 0
  • 世间所有的关系都会变得熟悉,最终变成理所当然,礼物最强大的力量在于,能够将那熟悉和理所当然的关系,重新变得让人心动...
    deedee阅读 786评论 0 4