zoukankan      html  css  js  c++  java
  • 使用AFNetWorking上传图片

    AFHTTPSessionManager *manager   = [AFHTTPSessionManager manager];

        

        NSString *string                        = @"admin:100";

        

        NSData          *originData             = [string dataUsingEncoding:NSASCIIStringEncoding];

        NSString        *encodeResult           = [originData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

        NSString        *end                    = [NSString stringWithFormat:@"Basic %@",encodeResult];

        

        

        manager.requestSerializer               = [AFHTTPRequestSerializer serializer];

        manager.responseSerializer              = [AFJSONResponseSerializer serializer];

        

        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",

                                                             @"text/html",

                                                             @"image/jpeg",

                                                             @"image/png",

                                                             @"application/octet-stream",

                                                             @"text/json",

                                                             nil];

        

        [manager.requestSerializer setValue:end forHTTPHeaderField:@"Authorization"];

        [manager.requestSerializer setValue:@"multipart/form-data"                     forHTTPHeaderField:@"Content-Type"];

        

        NSString                *urlStr     = [NSString stringWithFormat:@"%@%@",kNetIp,Net_UploadImg];

        

        NSMutableDictionary     *parameters = [[NSMutableDictionary alloc]init];

        

        NSLog(@" 上传图片请求参数 url %@ %@ manager %@",urlStr,parameters,manager.requestSerializer.HTTPRequestHeaders);

        

        [manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData)

        {

            // 上传文件

            NSData *imageData;

            if (UIImagePNGRepresentation(_pickedImg) == nil)

            {

                imageData = UIImageJPEGRepresentation(_pickedImg, 1);

            }

            else

            {

                imageData = UIImagePNGRepresentation(_pickedImg);

            }

            

            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/jpeg"];

        }

             progress:^(NSProgress *_Nonnull uploadProgress)

         {

             //打印下上传进度

         }

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

         {

             //上传成功

         }

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

         {

             //上传失败

             NSError         *code   = (NSError *)error;

             UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"图片上传出错" message:[NSString stringWithFormat:@"%@",code.localizedDescription] delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];

             [alert show];

         }];

  • 相关阅读:
    OAuth2集成——《跟我学Shiro》
    Spring的servlet context和application context
    Spring MVC中如何指定某个类或方法自适配地响应某个HTTP请求?
    spring security的标签库
    使用 Spring 2.5 基于注解驱动的 Spring MVC
    在数据库历史上最重要的人物简介
    工作流引擎Activiti使用总结
    Activiti初学者教程
    比较Activiti中三种不同的表单及其应用
    Activiti工作流引擎使用
  • 原文地址:https://www.cnblogs.com/shifu/p/5938652.html
Copyright © 2011-2022 走看看