iOS学习笔记--图片上传

本文介绍了一种使用AFNetworking库通过NSData数据流上传图片的方法。文章详细展示了如何将UIImage转换为NSData,并通过AFHTTPSessionManager进行POST请求,同时处理上传进度、成功与失败的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写项目的时候项遇到到了图片上传的问题,在这里将所用到的方法记录下来。在这里用NSData数据流进行上传。
废话不多说直接上代码

当然在上传图片之前还需要在工程中添加AFN库。
NSData * imageData = UIImageJPEGRepresentation(image, 0.1);

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
           manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",
                                                                 @"text/html",
                                                                 @"image/jpeg",
                                                                 @"image/png",
                                                                 @"application/octet-stream",
                                                                 @"text/json",
                                                                 nil];
NSURLSessionDataTask *task = [manager POST:KReportImageUrl parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
                NSData *imageDatas = imageData;

                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                formatter.dateFormat = @"yyyyMMddHHmmss";
                NSString *str = [formatter stringFromDate:[NSDate date]];
                NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
                //上传的参数(上传图片,以文件流的格式)
                [formData appendPartWithFileData:imageDatas
                                            name:@"photo"
                                        fileName:fileName
                                        mimeType:@"image/jpeg"];
            } progress:^(NSProgress * _Nonnull uploadProgress) {
                //上传进度

                NSLog(@"%@",uploadProgress);

            } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                //上传成功
                NSLog(@"上传成功");

            } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                //上传失败
                NSLog(@"上传失败========>%@",error);
            }];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值