注: 前提是导入第三方框架AFNetworking
单图上传
-(void)upLoadImage:(UIImage *)image completion:(void(^)(id responseObject, NSError *error))completion
{
// 图片上传时必要将图片进行压缩,不然会上传失败
NSString *urlString = @"上传地址";
NSData *imageData = UIImageJPEGRepresentation(image, 0.4);
// 1.单张图上传
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:urlString
parameters:@{@"username":@"zhangsan"}
constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
//使用日期生成图片名称
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
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);
}];
}
多图上传
-(void)upLoadImageArray:(NSArray *)imageArray completion:(void(^)(id responseObject, NSError *error))completion
{
//2.多图上传
NSString *urlString = @"";
// 多图上传和单图上传区别在于文件名称
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:urlString
parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
NSInteger imgCount = 0;
for (UIImage *image in imageArray) {
NSData *imageData = UIImageJPEGRepresentation(image, 0.4);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//时间格式 带-: 可能会失败
formatter.dateFormat = @"yyyyMMddHHmmssSSS";
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);
}];
}