iOS-带参数的图片上传(第二期)
一 AFNetwork-带参数的图片上传的两种方式
1.通过params上传(最普遍的方式)
前端代码:
AFHTTPSessionManager *Imagesession = [[AFHTTPSessionManager alloc]init];
NSDictionary *Imagejson =@{XXX};
[Imagesession POST:@"自己的url"
parameters:Imagejson
headers:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
UIImage *image = [UIImage imageNamed:XXX];
NSData *imagedata = UIImageJPEGRepresentation(image, 0.5);
[formData appendPartWithFileData:imagedata name:@"后端协调的名字" fileName:@"图片名字" mimeType:@"image/jpg"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@"%fA",uploadProgress.fractionCompleted);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"上传成功");
NSLog(@"%@B",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"上传失败");
NSLog(@"%@C",error);
NSLog(@"error ==%@", [error userInfo][@"com.alamofire.serialization.response.error.string"]);
}];
后端代码对应的接口:
2. 将类封装成文件上传
前端代码:
https://www.cnblogs.com/suanningmeng/p/15463264.html
后端对应的接口代码:
因为这个问题,导致我上传了很久,当然也是前后端没有协调好导致的,另外据说后端的第二种写法可以保证json和图片同时进行上传,有兴趣的后端同学可以了解一下。(附一篇别人的博客:https://www.cnblogs.com/hfultrastrong/p/12468915.html)