本文主要是介绍iOS学习-AFNetworking上传多张图片至后台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
切记,name:多文件上传时,name不能重复,否则会覆盖
- (void)postImg:(NSString *)urlparams:(id)paramsimageArr:(NSMutableArray *)imageArrcallback:(void(^)(id obj, NSError *error))callback {//选择需要的解析格式AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];manager.requestSerializer = [AFJSONRequestSerializer serializer];manager.responseSerializer= [AFJSONResponseSerializer serializer];[manager.requestSerializer setValue:kUser.token forHTTPHeaderField:@"Authorization"];url = [URL_BASIC stringByAppendingString:url];[manager POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {//遍历图片数组for (UIImage *image in imageArr) {// 图片太大会上传不到服务器上面去NSData *imageData = UIImageJPEGRepresentation(image, 1.0);;// 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名// 要解决此问题,// 可以在上传时使用当前的系统事件作为文件名NSDateFormatter *formatter = [[NSDateFormatter alloc] init];// 设置时间格式formatter.dateFormat = @"yyyyMMddHHmmss";NSString *str = [formatter stringFromDate:[NSDate date]];NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];/*此方法参数1. 要上传的[二进制数据]2. 对应后台处理文件的[字段"files"](根据后台定义的字段名来)3. 要保存在服务器上的[文件名]4. 上传文件的[mimeType]*/[formData appendPartWithFileData:imageData name:@"files" fileName:fileName mimeType:@"image/jpg"];}} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {callback(responseObject, nil);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {callback(nil, error);}];
}
这篇关于iOS学习-AFNetworking上传多张图片至后台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!