实战--AFNetworking上传一张或多张图片

本人也是小白,最近在做公司自己的项目,我就把项目中实用的我自己总结了一下,希望能帮助到和我一样刚开发的人,这一次总结得是用AFNetworking 向后台传输一张或多张图片,并且将照片压缩,感觉还是AFNetworking好使,相比原生的NSSURLsession的传输方法,话不多说,开始分享,用的话,代码基本不用改,直接用~

上传一张图片


 
    UIImage *image = [UIImage  imageNamed:@"3"];
    NSMutableDictionary *photo = [NSMutableDictionary dictionary];
    [photo setObject:@"123" forKey:@"phoneNumber"];
    
    [photo setObject:@"123" forKey:@"psw"];
    
    NSLog(@"1111%@",photo);

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer.timeoutInterval = 20;
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithArray:@[@"text/plain",@"multipart/form-data"]];
    [manager POST:@"http://192.168.0.105:8080/miracle/Upload.action" parameters:photo constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        
        NSDate *date = [NSDate date];
        NSDateFormatter *formormat = [[NSDateFormatter alloc]init];
        [formormat setDateFormat:@"HHmmss"];
        NSString *dateString = [formormat stringFromDate:date];
        
        NSString *fileName = [NSString  stringWithFormat:@"%@.png",dateString];
        NSData *imageData = UIImageJPEGRepresentation(image, 1);
        double scaleNum = (double)300*1024/imageData.length;
        NSLog(@"图片压缩率:%f",scaleNum);
       
        if(scaleNum <1){
            
            imageData = UIImageJPEGRepresentation(image, scaleNum);
        }else{
            
            imageData = UIImageJPEGRepresentation(image, 0.1);
            
        }
        
        [formData  appendPartWithFileData:imageData name:@"files" fileName:fileName mimeType:@"image/jpg/png/jpeg"];
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
        NSLog(@"---%@",uploadProgress);
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        NSLog(@"`````````%@",responseObject);
 NSDictionary *datas = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
        
        //
        NSLog(@"请求成功%@",datas);
        
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
    }];
    

    
    ```
    
## 上传多张图片 

NSArray * _imageArr = @[@"1",@"2",@"3"];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer.timeoutInterval = 20;
manager.responseSerializer.acceptableContentTypes = [NSSet setWithArray:@[@"text/plain",@"multipart/form-data"]];
[manager POST:@"http://192.168.0.105:8080/miracle/Upload.action" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    
    for (int i=0; i<_imageArr.count; i++) {
    
        
    UIImage * image =[UIImage  imageNamed:_imageArr[i]];
    NSDate *date = [NSDate date];
    NSDateFormatter *formormat = [[NSDateFormatter alloc]init];
    [formormat setDateFormat:@"HHmmss"];
    NSString *dateString = [formormat stringFromDate:date];
    
    NSString *fileName = [NSString  stringWithFormat:@"%@.png",dateString];
    NSData *imageData = UIImageJPEGRepresentation(image, 1);
    double scaleNum = (double)300*1024/imageData.length;
    NSLog(@"图片压缩率:%f",scaleNum);
    
    
    
    if(scaleNum <1){
        
        imageData = UIImageJPEGRepresentation(image, scaleNum);
    }else{
        
        imageData = UIImageJPEGRepresentation(image, 0.1);
        
    }
    
    [formData  appendPartWithFileData:imageData name:@"files" fileName:fileName mimeType:@"image/jpg/png/jpeg"];
    }
} progress:^(NSProgress * _Nonnull uploadProgress) {
    
    NSLog(@"---%@",uploadProgress);
    
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    
    NSLog(@"`````````%@",responseObject);

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

    //
    NSLog(@"请求成功%@",datas);
    
    
    
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    
    
}];
 ```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,407评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,246评论 4 61
  • 我庆幸从小就坚持爱着乒乓球,因为它,我总会有追逐梦想的感觉;因为它,我变得更加自信;因为它,我更加爱我自己。...
    灯灯and想想粑粑阅读 694评论 0 0
  • 看“剽悍一只猫的”文章,个人认为能医愚启慧,现总结精华如下,与更多的人共勉。 1.(看再多游泳教学视频,你也学不会...
    田真十阅读 336评论 3 2
  • 柏拉图说:当你坠入爱河,其实是你眼中看到了对方身上你不具备的好的特质。 仔细想想,我们有时喜欢一个人,大抵确实是喜...
    轻水阅读 499评论 0 0