关于最新版AFNetworking(3.0)上传多张图片的问题

最新版的AF已经废弃了很多以前的类,所以很多以前的方法都不能用了,当然最主要还是为了适应ipV6所做的更改。楼主最近正在写多张图片上传,碰到了一些问题,解决之后直接封装了一个方法,废话有点多了,上代码:

//上传多张图片

+ (void)requestWithUrl:(NSString *)url

withPostedImages:(NSArray *)imagesArray

WithSuccessBlock:(void (^)(NSArray * resultArray))successBlock

WithNeebHub:(BOOL)needHub

WithView:(UIView *)viewWithHub

WithData:(NSDictionary *)dataDic

{

if (imagesArray.count > 0) {

//创建一个临时的数组,用来存储回调回来的结果

NSMutableArray *temArray = [NSMutableArray array];

for (int i = 0;  i < imagesArray.count; i++) {

UIImage *imageObj = imagesArray[i];

//截取图片

NSData *imageData = UIImageJPEGRepresentation(imageObj, 0.5);

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

// 访问路径

[manager POST:url parameters:dataDic constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

// 上传文件

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"yyyyMMddHHmmss";

NSString *str = [formatter stringFromDate:[NSDate date]];

NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];

[formData appendPartWithFileData:imageData name:@"file" fileName:fileName mimeType:@"image/png"];

} progress:^(NSProgress * _Nonnull uploadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];

[temArray addObject:dic];

//当所有图片上传成功后再将结果进行回调

if (temArray.count == imagesArray.count) {

successBlock(temArray);

}

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];

}

}

}

在将所有图片上传成功后,在进行回调,回调的是一个数组哦,这样在上传图片的界面就可以拿到所有上传图片的id了。。。。

时间: 2025-01-05 00:26:23

关于最新版AFNetworking(3.0)上传多张图片的问题的相关文章

IIS7.0上传在大小限制

修改 IIS7的上传文件大小限制的方法: 1.打开IIS管理器,并定位于想要修改限制的网站 2.双击右侧窗口中的asp图标 3.展开最下面那个"限制属性",将最下面的"最大请求实体主体限制"右边属性框内修改成你想要的值(注意:单位为"字节"),如1g则修改为1073741824 4.点击窗口右上角的应用,关闭IIS管理器,如此而已 经过与IIS7的接触发现iis7的确比IIS6更人性化了,其它方面不说,微软在这方面做的还不错.修改好之后,点击右上

iOS-AFNetworking3.0上传大量(1000张)图片到服务器

背景: 最近项目要做上传图片功能,图片必须是高清的,所以不让压缩,上传图片是大量的,比如几百张,这个如果是用afn,将图片直接for循环加入到formData里会出现一个问题,临时变量太多,导致内存紧张,最后程序奔溃.之前写过用自动释放池解决它,但是还是效果不大.如果上传的多的话,内存还是受不了. 解决办法一适用于图片少量的如40张图片 我之前写的在这,可以看看自动释放池的方法,如果你上传图片的数量不多的话,可以用这种方法.也很简单的.链接在这里http://www.jianshu.com/p/

Alamofire +ObjectMapper模型: 上传单张图片,上传多张图片。

import Foundation import Alamofire //上传图片 ,multipartFormData 上传.key = attach extension HttpManager { /** 上传单张图片 - parameter image:   UIImage - parameter success: 成功回调图片 model - parameter failure: 失败 */ class func uploadSingleImage( _ image:UIImage, s

ASP.NET(C#)实现一次性动态上传多张图片的代码(多个文件)

在做asp.net的Web开发的时候,我们经常会遇到一次性上传多个文件的需求.通常我们的解决方法是固定放多个上传文件框,这样的解决办法显然是不合理的,因为一次上传多个,就意味着数量不确定.因此我们就要让这些文件上传框动态添加,下面我以我做的一个图库管理中的上传图片的功能为例 默认是上传一个图片,但当我们点“增加图片”按钮时可以实现选择多个图片及其描述同时上传,本功能限制一次最多只能上传8张,且每张图片大小不超过1M,这个大家可根据实际情况更改! 第一步,使用javascript代码实现动态添加文

微信JSSDK上传多张图片

之前是使用for循环实现的,但是安卓手机没有问题,苹果手机只能上传最后一张图片. 好在有高手在前面趟路,实用的循环调用.苹果是没有,安卓不清楚.以下内容转自:http://leo108.com/pid-2069.asp 做过微信开发的都知道,在部分android机型里微信不支持网页上传图片的,这是由于这些机型的文件上传存在内存泄漏,会导致微信闪退,所以微信内置浏览器将文件上传屏蔽.这就导致这些机型的用户在使用微信浏览器访问某些需要上传图片的网页时功能不正常. 前不久微信公开了一些接口,其中有一个

微信js sdk上传多张图片

微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="11111111111111111111"; $secret="11111111111111111111"; $token = S('access_token'); if (!$token) { $res = file_get_contents("https://api.weixin.qq.c

上传多张图片时 ,对 $_FILES 的处理. upload

上传多张图片, 要对 $_FILES进行 重新处理. 1 //添加 2 public function addCourseAlbumAction() 3 { 4 $CourseAlbumModel = new CourseAlbumModel(); 5 $CourseAlbumModel->title = $_REQUEST["title"]; 6 $CourseAlbumModel->courseId = $_REQUEST["courseId"];

上传数据+上传一张图片

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax上传数据(1.解决传送数据乱码问题2.苹果手机上传图片翻转问题)</title> <meta name="viewport" content="width=device-width,initial-scale=1,

Okhttp3上传多张图片同时传递参数

之前上传图片都是直接将图片转化为io流传给服务器,没有用框架传图片. 最近做项目,打算换个方法上传图片. Android发展到现在,Okhttp显得越来越重要,所以,这次我选择用Okhttp上传图片. Okhttp目前已经更新到Okhttp3版本了,用法跟之前相比,也有一些差别.在网上找了很多资料, 并和java后台同事反复调试,终于成功上传多张图片,同时传递一些键值对参数. 以下是我对该过程的封装: private static final MediaType MEDIA_TYPE_PNG =