/*
- @desc 通过Put方法上传图片。
*/
-
(void)putUploadImage:(UIImage *)img withUrlStr:(NSString *)urlStr finish:(void(^)(NSData *respObj, NSError *error))finish {
//初始化请求。
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];[request setURL:[NSURL URLWithString:urlStr]];
//设置请求类型。
[request setHTTPMethod:@“PUT”];//根据自己的情况设置Http头部。
//[request setValue:@“application/json” forHTTPHeaderField:@“Content-Type”];
[request setValue:@“text/plain” forHTTPHeaderField:@“Content-Type”];
//经过测试同一张拍照所得的照片png大小在8M,而JPG压缩系数为0.75时候,大小只有1M。而且将压缩系数降低对图片视觉并没有太大的影响。
NSData *imgData = UIImageJPEGRepresentation(img, 0.75);
[request setHTTPBody:imgData];NSURLSession *session = [NSURLSession sharedSession];
//创建任务。
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (finish != NULL) {
NSLog(@“上传成功”);
finish(data, error);
}else{
NSLog(@“上传失败”);
}
});
}];//启动任务/执行任务。
[dataTask resume];
}