将图片打包成文件上传服务器 POST请求 AFNetWorking网络请求

来源:互联网 发布:ug二次开发vb 编辑:程序博客网 时间:2024/05/17 07:20

 AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];

    manager.responseSerializer = [AFJSONResponseSerializerserializer];

//网络请求超时

    if (manager.requestSerializer.timeoutInterval == 10) {

        NSLog(@"请求超时");

    }

//数据格式

    [manager.responseSerializersetAcceptableContentTypes:[NSSetsetWithObjects:@"application/json",@"text/json", @"text/javascript",@"text/html", @"text/css",@"text/plain", nil]];

    //将图片转化为NSDate类型;

    UIImage *image = [UIImageimageNamed:@"baby_icon_cam"];

    NSData *imageData =UIImagePNGRepresentation(image);

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) lastObject];

    NSString *imagePath = [documentPathstringByAppendingString:@"/image.png"];

//保存文件到本地,document文件目录下面

    [imageData writeToFile:imagePathatomically:YES];

    

    //永久性存储

    NSUserDefaults *userDefaults = [NSUserDefaultsstandardUserDefaults];

    [userDefaults setObject:imagePathforKey:@"avatar"];

    

    

    

    NSLog(@"imagePath = %@",imagePath);

//photo:后台要求传入参数

    NSMutableDictionary *parameters = [[NSMutableDictionaryalloc]init];

    [parameters setObject:imagePathforKey:@"photo"];

//服务器接口

    NSString *url =@"http://192.168.1.250/demo/Home/Addcontents/uplo";

    //post请求,传输二进制文件的方法,AFNetWorking自带

    [manager POST:urlparameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData_Nonnull formData) {

        UIImage *image = [UIImageimageNamed:@"Classes"];

         NSData *data=UIImagePNGRepresentation(image);

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];


        //设置时间格式,存储文件的名字,以时间来命名不会有重复命名出现

        formatter.dateFormat =@"yyyyMMddHHmmss";

        NSString *str = [formatterstringFromDate:[NSDatedate]];

        NSString *fileName = [NSStringstringWithFormat:@"%@.png", str];

//此处Photo,展示请求数据时字典的key值

        [formData appendPartWithFileData:data name:@"Photo"fileName:fileName mimeType:@"image.png"];

        

        

    } progress:^(NSProgress *_Nonnull uploadProgress) {

        

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

        NSLog(@"%@",responseObject);

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

        NSLog(@"%@",error);

    }];

    

   

    

    

}


0 0