- (void)postImage:(UIImage *)_image
{//分界线的标识符NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";//根据url初始化requestNSInteger schoolID = [[BaseUser shareInstance].userIdentity.school_id integerValue];NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"url"]cachePolicy:NSURLRequestReloadIgnoringLocalCacheDatatimeoutInterval:10];//分界线 --AaB03xNSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];//结束符 AaB03x--NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];//要上传的图片UIImage *image= _image;//得到图片的dataNSData* data = UIImagePNGRepresentation(image);//http body的字符串NSMutableString *body=[[NSMutableString alloc]init];//参数的集合的所有key的集合NSDictionary *param = @{};NSArray *keys = [[param keyValues] allKeys];//遍历keysfor(int i=0;i<[keys count];i++){//得到当前keyNSString *key=[keys objectAtIndex:i];//如果key不是pic,说明value是字符类型,比如name:Borisif(![key isEqualToString:@"pic"]){//添加分界线,换行[body appendFormat:@"%@\r\n",MPboundary];//添加字段名称,换2行[body appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];//添加字段的值[body appendFormat:@"%@\r\n",[[param keyValues] objectForKey:key]];}}////添加分界线,换行[body appendFormat:@"%@\r\n",MPboundary];//声明pic字段,文件名为boris.png[body appendFormat:@"Content-Disposition: form-data; name=\"pic\"; filename=\"boris.png\"\r\n"];//声明上传文件的格式[body appendFormat:@"Content-Type: image/png\r\n\r\n"];//声明结束符:--AaB03x--NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];//声明myRequestData,用来放入http bodyNSMutableData *myRequestData=[NSMutableData data];//将body字符串转化为UTF8格式的二进制
    [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];//将image的data加入
    [myRequestData appendData:data];//加入结束符--AaB03x--
    [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];//设置HTTPHeader中Content-Type的值NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];//设置HTTPHeader[request setValue:content forHTTPHeaderField:@"Content-Type"];//设置Content-Length[request setValue:[NSString stringWithFormat:@"%d", [myRequestData length]] forHTTPHeaderField:@"Content-Length"];//设置http body
    [request setHTTPBody:myRequestData];//http method[request setHTTPMethod:@"POST"];//建立连接,设置代理[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {if (connectionError) {}else{NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];NSLog(@"上传成功");}}];}

转载于:https://www.cnblogs.com/pretty-guy/p/4501215.html

iOS NSMutableURLRequest 上传图片相关推荐

  1. 用exfe.js和canvas解决移动端 IOS 拍照上传图片翻转问题

    前言 记得16年的时候我初入前端差不多一年,公司做了一个webapp,有上传头像功能,当时这个项目不是我在负责,测试的时候发现苹果用户拍照上传头像会翻转,当时几个前端的同学捯饬了一下午也没解决,结果问 ...

  2. ios 上传图片失败 小程序_【报Bug】百度小程序真机IOS无法上传图片

    详细问题描述 (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题) [内容] 在百度小程序开发者 ...

  3. 【uni-app】H5以及真机(android ios解决上传图片旋转90度的问题)

    h5是通过拿到旋转的值,重新用canvas画图,所以在页面需要加入canvas 元素,其中用v-if的原因,是重复上传的话之前画的不会清空掉,所以用v-if来清空.还有canvas要设置height: ...

  4. 关于ios手机上传图片旋转问题的解决

    先占个坑,一会完善!! 转载于:https://www.cnblogs.com/zhuyu/articles/5943400.html

  5. ios开发 上传图片颠倒问题

    曾遇到这样的一个问题,  自己上传到服务器的图片, 在请求回来莫名奇妙的就会颠倒了 解决办法只需要, 在图片上传之前, 做一下处理就可以了 //图片处理,此方法解决了, (手机竖屏拍照,图片会横倒的问 ...

  6. layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能

    显示效果: 安卓系统上传图片 安卓系统上传视频 苹果IOS IOS系统上传图片 IOS系统上传视频 layui解决代码 上传图片 <button class="layui-btn&qu ...

  7. uniapp上传图片失败原因

    在uniapp中将临时图片地址上传获取永久地址, 刚开始是使用post方法直接调接口上传图片,一直上传失败, 后发现需使用uni.uploadFile()才能上传文件,代码如下 // 不传递参数的情况 ...

  8. html5报名页面设计

    在微信或者APP中但凡需要用户参与的活动,一般都会需要用户上传一些资料,这就涉及到报名页面的设计.比如在我做的心愿漂流瓶项目中,就包含报名页面,地址:发布心愿页面.在手机端打开效果图如下图1所示. 图 ...

  9. 【转】app之YdbOnline说明文档

    概述 YdbOnline是面向网页开发者提供的网页开发工具包. 通过使用YdbOnline,网页开发者可借助YdbOnline高效地使用语音.位置等手机系统的能力,同时可以直接使用清除缓存.扫一扫等A ...

最新文章

  1. 大规模数据处理Apache Spark开发
  2. Java开发面试题及答案,5年crud“经验
  3. 图解手动全面检查管理本机端口
  4. hdu 5093 二分匹配
  5. ios自带NSURLConnection下载文件
  6. 华为公开“一种芯片堆叠封装及终端设备”专利
  7. oracle到pg不停机增量迁移,研究 Oracle 到 PostgreSQL 的数据迁移 – 以 pgloader 为例 – Phy 的博客...
  8. from mysql partition select_通过分区(Partition)提升MySQL性能[原创翻译]
  9. 波卡生态跨链隐私中间件协议Raze Network将于4月中旬开启IDO和LBP
  10. python图像边缘检测报告_python计算机视觉2:图像边缘检测
  11. 什么软件可以搜C语言题答案,C语言题库(带答案)-排版Word版
  12. 数据分析必备算法(算数平均值,加权平均值,最值,中位数,标准差,时间数据处理 ,数组的轴向汇总, 移动均线 ,卷积(简单概念))
  13. Python笔记_39_前端_HTML
  14. nmn与线粒体的作用,nmn线粒体对细胞作用及影响,值得关注
  15. BZOJ 1208: [HNOI2004]宠物收养所 (Treap)
  16. Linux设备驱动程序
  17. R语言数据类型基础1 数值型、逻辑型与文本型
  18. textarea内部换行实现
  19. 前端代码 录音样式 类似微信发送语音
  20. 【论文向】NAACL2022 汉语纠错多源、多参考数据集MuCGEC

热门文章

  1. 二维特征分类的基础_3D 分割分类总结
  2. spring学习--AOP--JDK动态代理
  3. 微软账号被暂时停用咋办_游戏账号交易要注意什么?买游戏账号有哪些可能会被找回去...
  4. linux中如何解决文件已删除但空间不释放的案例
  5. python函数和代码复用思维导图_Python语言程序---代码复用与函数递归(二)
  6. mat分析dump分析_使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一)
  7. linux 内核dump,linux内核调试技巧之一 dump_stack【转】
  8. python写登录界面跳转至数据库操作_pycharm+jdango+python实现创建web工程并实现简单登陆...
  9. 武汉纺织大学C语言试题,武汉纺织大学10年C语言试题.doc
  10. java+swing+教科书,java+Swing+学生事务管理系统