美文网首页
工程中 上传照片的流程

工程中 上传照片的流程

作者: 来敲代码 | 来源:发表于2017-02-14 09:21 被阅读10次

    //  新建文件夹

    NSString *drivingImagePath = [self imageSavedPath:@"image.jpg"];

    //  将图片存入该文件夹

    [self saveToDocument:self.PlateImageView.image withFilePath:drivingImagePath];

    //根据图片名将图片保存到ImageFile文件夹中

    -(NSString *)imageSavedPath:(NSString *) imageName

    {

    //获取Documents文件夹目录

    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentPath = [path objectAtIndex:0];

    //获取文件管理器

    NSFileManager *fileManager = [NSFileManager defaultManager];

    //指定新建文件夹路径

    NSString *imageDocPath = [documentPath stringByAppendingPathComponent:@"ImageFile"];

    //创建ImageFile文件夹

    [fileManager createDirectoryAtPath:imageDocPath withIntermediateDirectories:YES attributes:nil error:nil];

    //返回保存图片的路径(图片保存在ImageFile文件夹下)

    NSString * imagePath = [imageDocPath stringByAppendingPathComponent:imageName];

    //    NSString * imagePath = [documentPath stringByAppendingPathComponent:imageName];

    return imagePath;

    }

    //将选取的图片保存到目录文件夹下

    -(BOOL)saveToDocument:(UIImage *) image withFilePath:(NSString *) filePath

    {

    if ((image == nil) || (filePath == nil) || [filePath isEqualToString:@""])

    {

    return NO;

    }

    @try {

    NSData *imageData = nil;

    //获取文件扩展名

    NSString *extention = [filePath pathExtension];

    if ([extention isEqualToString:@"png"]) {

    //返回PNG格式的图片数据

    imageData = UIImagePNGRepresentation(image);

    }else{

    //返回JPG格式的图片数据,第二个参数为压缩质量:0:best 1:lost

    imageData = UIImageJPEGRepresentation(image, 0.4);

    }

    if (imageData == nil || [imageData length] <= 0) {

    return NO;

    }

    //将图片写入指定路径

    [imageData writeToFile:filePath atomically:YES];

    return  YES;

    }

    @catch (NSException *exception) {

    LOG(@"保存图片失败");

    }

    return NO;

    }

    //   这里调用接口 

    DECLARE_WEAK_SELF;//uploadPitureWithLicensePlateNumber

    if (self.PlateImage != nil && ![self.PlateFive.text isEqualToString:@""]) {

    [SVProgressHUD show];

    [[ACUserManager defaultUesrManager]uploadPitureWithLicensePlateNumber:self.PlateFive.text image:self.PlateImage block:^(id info, NSError *error) {

    DECLARE_STRONG_SELF;

    if (!error) {

    if ([info[@"code"] isEqualToString:@"00"]) {

    NSLog(@"%@",info);

    [SVProgressHUD showSuccessWithStatus:info[@"msg"] duration:1.0];

    }else{

    //                [ACCRToastManager showFailureNotificationWithText:NSLocalizedString(@"失败", nil) subtitleText:NSLocalizedString(info[@"msg"], nil)];

    [SVProgressHUD showErrorWithStatus:info[@"msg"] duration:1.0];

    NSLog(@"%@",info[@"msg"]);

    }

    }

    [SVProgressHUD dismiss];

    }];

    // 上传车牌号和图片  这里是接口传给后台

    - (void)uploadPitureWithLicensePlateNumber:(NSString *)license image:(UIImage *)image block:(void (^)(id, NSError * ))block{

    if (license == nil) {

    license = @"";

    }

    NSDictionary *param=@{@"lpn":license};

    NSString *paramStr = [NSString stringWithFormat:@"{\"lpn\":\"%@\"}",license];

    NSDictionary *parameters = [self stitchingParameters:param method:@"uploadCarPicture"];

    NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithDictionary:parameters];

    [dict setValue:@"memberCar" forKey:@"fileUse"];

    [dict setValue:@"PlateNumber" forKey:@"fileName"];

    [dict setValue:@"jpg" forKey:@"fileFormat"];

    [dict setObject:paramStr forKey:@"param"];

    LOG(@"-------------------%@",dict);

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];        // 设置请求格式    manager.requestSerializer = [AFJSONRequestSerializer serializer];    // 设置返回格式    manager.responseSerializer = [AFHTTPResponseSerializer serializer];        // formData是遵守了AFMultipartFormData的对象    // kChargingUrl    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];        NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];        NSLog(@"%@",[kUploadCarPictureChargingUrl stringByAppendingString:json]);        [manager POST:kUploadCarPictureChargingUrl parameters:dict constructingBodyWithBlock:^(idformData) {

    // 将本地的文件上传至服务器

    NSString  *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/ImageFile/image.jpg"];

    NSLog(@"%@",path);

    NSData *data = [NSData dataWithContentsOfFile:path];

    [formData appendPartWithFormData:data name:@"file"];

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil];

    NSLog(@"%@", dict);

    if (block) {

    block(dict, nil);

    }

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    if (block) {

    block(nil, error);

    }

    }];

    }

    相关文章

      网友评论

          本文标题:工程中 上传照片的流程

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