iOS使用AFN进行单图和多图上传的实例代码

时间:2022-09-17 12:33:39

图片上传时必要将图片进行压缩,不然会上传失败

1.单张图上传

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  [manager POST:urlString parameters:params constructingBodyWithBlock:^(id_Nonnull formData) {
 
//使用日期生成图片名称
 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
 
NSString *fileName = [NSString stringWithFormat:@"%@.png",[formatter stringFromDate:[NSDate date]]];
 
[formData appendPartWithFileData:imageData name:@"uploadFile" fileName:fileName mimeType:@"image/png"];
 
} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
 
//上传图片成功执行回调
 
completion(responseObject,nil);
 
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
 
//上传图片失败执行回调
 
completion(nil,error);
 
}];

2.多图上传

多图上传和单图上传区别在于文件名称

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];  [manager POST:urlString parameters:params constructingBodyWithBlock:^(id_Nonnull formData) {
 
NSInteger imgCount = 0;
 
for (NSData *imageData in imageDatas) {
 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss:SSS";
 
NSString *fileName = [NSString stringWithFormat:@"%@%@.png",[formatter stringFromDate:[NSDate date]],@(imgCount)];
 
[formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"uploadFile%@",@(imgCount)] fileName:fileName mimeType:@"image/png"];
 
imgCount++;
 
}
 
} success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
 
completion(responseObject,nil);
 
} failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {
 
completion(nil,error);
 
}];

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.jianshu.com/p/0e28fdef0f91