ios 刷新头像_iOS上传图片到网上,并更新到服务器,常用在设置头像
//封装一个工具类FileUploader
//FileUploader.h
#import
@interface FileUploader : NSObject
+(void) upLoadImage:(UIImage *) p_w_picpath completionHandler:(void (^)(NSURLResponse* response, NSData* data, NSError* connectionError)) handler;
@end
//FileUploader.m
#import"FileUploader.h"
@implementationFileUploader
+(void) upLoadImage:(UIImage *) p_w_picpath completionHandler:(void (^)(NSURLResponse* response, NSData* data, NSError* connectionError)) handle
{
NSString*path1 = [NSStringstringWithFormat:@"http://2.guansir.sinaapp.com/upload.php"];
NSURL *url = [NSURL URLWithString:path1];
NSData*data =UIImagePNGRepresentation(p_w_picpath);
NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
//分界线 --AaB03x
NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
//结束符 AaB03x--
NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
//http body的字符串
NSMutableString*body=[[NSMutableStringalloc]init];
添加分界线,换行
[body appendFormat:@"%@\r\n",MPboundary];
//声明pic字段,文件名为boris.png
[bodyappendFormat:@"Content-Disposition: form-data; name=\"img\"; filename=\"boris.png\"\r\n"];
//声明上传文件的格式
[bodyappendFormat:@"Content-Type: p_w_picpath/png\r\n\r\n"];
//声明结束符:--AaB03x--
NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];
//声明myRequestData,用来放入http body
NSMutableData*myRequestData=[NSMutableDatadata];
//将body字符串转化为UTF8格式的二进制
[myRequestDataappendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];
//将p_w_picpath的data加入
[myRequestData appendData:data];
//加入结束符--AaB03x--
[myRequestDataappendData:[enddataUsingEncoding:NSUTF8StringEncoding]];
//设置HTTPHeader中Content-Type的值
NSString *content=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
//设置HTTPHeader
[requestsetValue:contentforHTTPHeaderField:@"Content-Type"];
//设置Content-Length
[requestsetValue:[NSStringstringWithFormat:@"%lu",(unsignedlong)[myRequestDatalength]]forHTTPHeaderField:@"Content-Length"];
//设置http body
[request setHTTPBody:myRequestData];
//http method
[request setHTTPMethod:@"POST"];
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
handle(response,data,connectionError);
}];
}
@end
//FileUploader类封装完成========================================================
//使用
[FileUploader upLoadImage:p_w_picpath completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if(connectionError==nil)
{
if (data != nil) {
NSLog(@"%@",[[NSString alloc] initWithData:data encoding:4]);
NSError *error;
NSDictionary*dic = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:&error];
if (dic == nil) {
}else{
//如果有值的话将图片和所需要的参数更新到服务端,这里需要的是将图片和老师id传到服务端改教师头像
NSString *strImage = [NSString stringWithFormat:@"id=%d&imgHead=%@",self.teachId,dic[@"p_w_picpathUrl"]];
NSLog(@"strImage = %@",strImage);
NSData *data1 = [strImage dataUsingEncoding:4];
NSString *path = [NSString stringWithFormat:@"%@%@",HOST,TEACHER_UPDATE];
NSURL *url = [NSURL URLWithString:path];
NSMutableURLRequest*req = [NSMutableURLRequestrequestWithURL:url];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:data1];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue new] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (!connectionError) {
NSLog(@"更新成功= %@",[[NSString alloc]initWithData:data encoding:4]);
}else
{
NSLog(@"error = %@",connectionError);
}
}];
}
}
}
else
{
NSLog(@"error = %@",connectionError);
}
}];
ios 刷新头像_iOS上传图片到网上,并更新到服务器,常用在设置头像相关推荐
- ios 上传图片失败 小程序_iOS上传图片,就是有这种不一样的操作!
很久没发文了,最近这段时间在看前端的东西,在忙微商城webapp的事,用的vue2.0开发,打算过段时间记录总结那方面的一些知识点和坑.下面进入今天的主题. 说到iOS上传图片,网上的资料满满皆是,分 ...
- ios 裁剪圆形头像_iOS开发笔记:实现圆形头像
初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助 一般应用的个人头像如上图,圆形头像算是每款App中最常见的东西了,刚好最近有遇到这个问题,并且顺利解决了,其实很简单,调用layer这 ...
- ios 刷新头像_想请问各位大大,iOS中新旧头像缓存的策略是什么?如微信,每次更换个人头像后,服务器怎么处理新旧头像?...
新旧头像如何处理,需要考虑服务端和客户端两个方面. 通常大公司会将文件上传做成基础服务,跟特定的应用无关.假设这里,文件上传为服务 A, 特定的应用为服务 B,客户端为 C.这时候替换头像大致有两种做 ...
- ios 刷新遮罩遮罩_在Adobe XD中进行遮罩的3种方法
ios 刷新遮罩遮罩 Are you new to Adobe XD? Or maybe you're just stuck on how to create a simple mask? Here ...
- ios 上传图片失败 小程序_微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题...
微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题 微信小程序开发上传图片,使用ajaxsubmit,post请求,form设置multipart/form-data, a ...
- iOS通过http post上传图片, 文件等
原文地址为: iOS通过http post上传图片, 文件等 在http网络请求中,post没有请求长度的限制,因为post把数据放在了body中,而不是像Get一样放在了浏览器的地址栏中(可以这么理 ...
- ios超级签名_ios超级签名多少钱?决定超级签名价格的因素有哪些
ios超级签名是苹果签名中一种应用广泛的签名方式,有不少开发者和运营商一直都在选择超级签名来进行APP应用的内测分发.ios超级签名的原理机制其实是运用苹果的个人开发者账号生成的具有100台真机测试的 ...
- ios虚拟机运行速度_iOS 8的采用速度减慢至虚拟停止
ios虚拟机运行速度 In the latest update statistics released by Apple, it is pretty clear that people have st ...
- android中华为、小米手机设置头像裁剪失败问题
近期写代码碰到华为.小米手机拍照.从相册获取图片设置头像失败的问题,在网上浏览一些相关博客后,终于解决了此问题,特在此记录,分享给大家,也算是自己的一个笔记了! 问题原因:裁剪时 return-dat ...
最新文章
- html如何呈现在显示器,lcd显示器采用什么显示方式
- Oracle海量数据优化-01分区的渊源
- django-vue-admin脚手架快速开发CRUD教程
- 新手学Python, 如何从入门到入土变为从入门到快速上车?
- 解决Error: Protected multilib versions:
- 三星官方回应“7nm EUV良率”:内容与事实完全不符
- 微课|中学生可以这样学Python(5.6.1节):列表推导式2
- HDU 1176 免费馅饼(记忆化搜索)
- html代码放进json数据,用json数据填充html表
- [No00005A]word多文档合一
- Django下的templates 和 static静态文件
- 2016年第七届(C/C++)B组蓝桥国赛题
- VM 网络设置 for xp3
- Object slicing(对象切片)
- STM32连接WIFI-ESP8266获取天气信息---STA模式运用
- java短信发送接口开发
- 0/0型极限等于多少_有限个极限运算及常见错误小结
- 计算机专业论文谢辞,计算机专业论文致谢信.docx
- 线程池、volatile、原子性、并发工具类
- 译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(1)
热门文章
- java 字符串编程题,JAVA 基础编程练习题7 【程序 7 处理字符串】
- SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
- c++ cuda拷贝内存
- CVPR 2021 | 微软提出“解构式关键点回归“, 刷新COCO自底向上多人姿态检测记录!
- Android Studio编译问题-Error:Could not find org.jetbrains.trove4j
- argparse subparsers()
- retinaface人脸对齐
- nn.Upsampling is deprecated. Use nn.functional.interpolate instead.
- Qt编写OpenMP程序--循环测试
- python ffmpeg pyav