美文网首页
7.AFNetworking实现图片上传

7.AFNetworking实现图片上传

作者: 峰子1994 | 来源:发表于2017-10-28 10:19 被阅读28次

    前言

    1.在iOS开发的工作我们经常使用的图片上传这个功能,前面我们提到了使用NSURLSessionUploadTask+NSURLSesionDelegate去实现图片的上传功能,
    感觉那个拼接的文件的路径太麻烦了,现在感觉使用AFNetworking封装好的
    上传图片的功能挺好的!!

    1.图片上传的代码:

     AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data", @"application/json", @"text/html", @"image/jpeg", @"image/png", @"application/octet-stream", @"text/json", nil];
        [manager POST:@"nurl" parameters:@"paramter" constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
           // formData: 专门用于拼接需要上传的数据,在此位置生成一个要上传的数据体
           //这里可以用作多个图片上传加一个数组就Ok
            // 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名
            // 要解决此问题,
            // 可以在上传时使用当前的系统事件作为文件名
            NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
            formatter.dateFormat = @"yyyyMMddHHmmss";
            NSString *str = [formatter stringFromDate:[NSDate date]];
            NSString *fileName = [NSString stringWithFormat:@"%@.jpg",str];
            UIImage *phone = [[UIImage alloc]init];
            //压缩下
            NSData *imageData =UIImageJPEGRepresentation(phone, 0.5);
            /*
             *该方法的参数
             1. appendPartWithFileData:要上传的照片[二进制流]
             2. name:对应网站上[upload.php中]处理文件的字段(比如upload)
             3. fileName:要保存在服务器上的文件名
             4. mimeType:上传的文件的类型
             */
            [formData appendPartWithFileData:imageData name:@"upload" fileName:fileName mimeType:@"image/jpeg"];
        } progress:^(NSProgress * _Nonnull uploadProgress) {
            NSLog(@"上传的进度了");
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            NSLog(@"success");
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"failure");
        }];
    

    相关文章

      网友评论

          本文标题:7.AFNetworking实现图片上传

          本文链接:https://www.haomeiwen.com/subject/aqbjpxtx.html