本篇文章主要介绍了"NSURLConnection单个文件上传的理",主要涉及到connection方面的内容,对于移动开发感兴趣的同学可以参考一下:
//NSURLConnection单个文件上传的原理 //修改请求头的内容 等于号前面的都是固定写法 后面的可以随意写,只要不是中文就行,作用就是分隔Co...
//NSURLConnection单个文件上传的原理
//修改请求头的内容 等于号前面的都是固定写法 后面的可以随意写,只要不是中文就行,作用就是分隔
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryloYtOsBX6ocWmMzW
//拼接请求体 因为起分隔作用的话内容一样,只是多了两个--所以把它定义为宏,用时方便,定义一个可变的数据,每拼接完一句,就添加一句,但是注意换行。
// /r/n 是我自己添加的 方便以后回忆
------WebKitFormBoundaryloYtOsBX6ocWmMzW /r/n
Content-Disposition: form-data; name="userfile"; filename="8.jpg" /r/n
Content-Type: image/jpeg /r/n
/r/n
//因为是图片所以它没办法显示数据,通过路径加载转成二进制添加后记得换行\r\n
------WebKitFormBoundaryloYtOsBX6ocWmMzW--
//这个----可以不写,但是请求体开头和结尾的--必须写,不能多,不能少都是两个
#define fen @"----fengefu"
//实例代码
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/post/upload.php"];
NSMutableURLRequest *requestM = [NSMutableURLRequest requestWithURL:url];
//设置请求的方式
requestM.HTTPMethod = @"POST";
//设置请求头的内容
NSString *string = [NSString stringWithFormat:@"smultipart/form-data; boundary=%@",fen];
//设置请求头数据 用set方法
[requestM setValue:string forHTTPHeaderField:@"Content-Type"];
//设置请求体
requestM.HTTPBody = [self headerData];
//建立连接发送请求
[NSURLConnection sendAsynchronousRequest:requestM queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {