美文网首页
AFNetworking3.0上传图片

AFNetworking3.0上传图片

作者: 乖乖Mor | 来源:发表于2018-01-23 09:22 被阅读0次

    看到简书某大神的上传方法,记录一下,以防忘记

    NSMutableDictionary *params = [NSMutableDictionary dictionary];    params[@"sensitive"]=false;

      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

        manager.requestSerializer.timeoutInterval = 20;    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"multipart/form-data", @"application/json", @"text/html", @"image/jpeg", @"image/png", @"image/jpg", @"application/octet-stream", @"text/json", nil];

       // 在parameters里存放照片以外的对象    [managerPOST:@"http://atell.awei.org/images/upload/binary" parameters:params constructingBodyWithBlock:^(id  _Nonnull formData) {

            // formData: 专门用于拼接需要上传的数据,在此位置生成一个要上传的数据体

           // 这里的photoArray是存放图片的数组

           for(int i =0; i < self.photoArray.count; i++)         

    {            UIImage*image =self.photoArray[i];

                NSData*imageData =UIImageJPEGRepresentation(image,0.5);

                // 在网络开发中,上传文件时,是文件不允许被覆盖,文件重名

                // 要解决此问题,

                // 可以在上传时使用当前的系统时间作为文件名

                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

                // 设置时间格式

                [formattersetDateFormat:@"yyyyMMddHHmmss"];

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

                NSString*fileName = [NSString  stringWithFormat:@"%@-%d.jpg", dateString,i];

                DLog(@"-----7777-----\n%@",fileName );

                /*

                 *该方法的参数

                 1. appendPartWithFileData:要上传的照片[二进制流]

                 2. name:对应网站上处理文件的字段-----此字段非常重要,不然会上传失败,应与后台约定好

                 3. fileName:要保存在服务器上的文件名-----一般无所谓

                 4. mimeType:上传的文件的类型*/

               [formDataappendPartWithFileData:imageDataname:[NSStringstringWithFormat:@"file"]fileName:fileNamemimeType:@"image/jpg"];

            }

       }progress:^(NSProgress*_NonnulluploadProgress) {

            DLog(@"---上传进度--- %@",uploadProgress);

        }success:^(NSURLSessionDataTask*_Nonnulltask,id  _NullableresponseObject) {

                DLog(@"```上传成功111111-----");

        }failure:^(NSURLSessionDataTask*_Nullabletask,NSError*_Nonnullerror) {

           DLog(@"xxx上传失败xxx %@", error);

       }];

    相关文章

      网友评论

          本文标题:AFNetworking3.0上传图片

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