您的位置:首页 > 理论基础 > 计算机网络

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

2016-06-22 18:08 567 查看
 AFHTTPSessionManager *manager = [AFHTTPSessionManager
manager];

    manager.responseSerializer = [AFJSONResponseSerializer
serializer];

//网络请求超时

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

        NSLog(@"请求超时");

    }

//数据格式

    [manager.responseSerializer
setAcceptableContentTypes:[NSSet
setWithObjects:@"application/json",
@"text/json", @"text/javascript",
@"text/html", @"text/css",
@"text/plain", nil]];

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

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

    NSData *imageData =
UIImagePNGRepresentation(image);

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

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

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

    [imageData writeToFile:imagePath
atomically:YES];

    

    //永久性存储

    NSUserDefaults *userDefaults = [NSUserDefaults
standardUserDefaults];

    [userDefaults setObject:imagePath
forKey:@"avatar"];

    

    

    

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

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

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

    [parameters setObject:imagePath
forKey:@"photo"];

//服务器接口

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

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

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

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

         NSData *data=UIImagePNGRepresentation(image);

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

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

        formatter.dateFormat =
@"yyyyMMddHHmmss";

        NSString *str = [formatter
stringFromDate:[NSDate
date]];

        NSString *fileName = [NSString
stringWithFormat:@"%@.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);

    }];

    

   

    

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: