iOS实现压缩图片上传功能

前端技术 2023/09/08 IOS

本文实例为大家分享了iOS实现压缩图片上传功能,供大家参考,具体内容如下

#pragma mark - 打开相机
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
  UIImage *image = info[UIImagePickerControllerOriginalImage];
  self.currentTapCell.photoManageImgView.image = image;
  NSIndexPath * indexPath = [self.baseTable indexPathForCell:self.currentTapCell];
  NSString * key = [NSString stringWithFormat:@\"ineed%u%u\", indexPath.row, indexPath.section];
    [[NetEngineHelper shareNetEngine] postUploadWithUrl:k_uploadPhoto_url image:image fileName:[NSString stringWithFormat:@\"%@.png\", key] fileType:@\"PNG/JPEG/JPG\" success:^(id response) {
    if ([response[@\"STATUS\"] intValue] != 0) {
      NSString * str = @\"\";
      if (response[@\"ERRORDESC\"]) {
        str = response[@\"ERRORDESC\"];
      }else{
        str = @\"系统异常\";
      }
      [AlertHelper shareAlertHelper].onVC = self;
      [AlertHelper shareAlertHelper].alertTitle = str;
      [AlertHelper shareAlertHelper].alertMessage = nil;
      [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
         
      }];
    }else{
      [AlertHelper shareAlertHelper].onVC = self;
      [AlertHelper shareAlertHelper].alertTitle = @\"上传成功\";
      [AlertHelper shareAlertHelper].alertMessage = nil;
      [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
         
      }];
       
      if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@\"上传诊断证明\"]) {
        [self.successUploadDic setValue:response[@\"FILEID\"] forKey:@\"PROVEID\"];
      }
      if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@\"上传病历首页\"]){
        [self.successUploadDic setValue:response[@\"FILEID\"] forKey:@\"CASEHOMEID\"];
      }
       
       
       
      NSLog(@\"上传结果  %@\", response);
    }
 
  } fail:^(NSError *error) {
    [AlertHelper shareAlertHelper].onVC = self;
    [AlertHelper shareAlertHelper].alertTitle = error.userInfo[@\"NSLocalizedDescription\"];
    [AlertHelper shareAlertHelper].alertMessage = nil;
    [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
       
    }];
 
  }];
   
   
  [self dismissViewControllerAnimated:YES completion:^{
     
  }];
}
          
 
 
#pragma mark - 打开相机
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
  UIImage *image = info[UIImagePickerControllerOriginalImage];
  self.currentTapCell.photoManageImgView.image = image;
  NSIndexPath * indexPath = [self.baseTable indexPathForCell:self.currentTapCell];
  NSString * key = [NSString stringWithFormat:@\"ineed%u%u\", indexPath.row, indexPath.section];
    [[NetEngineHelper shareNetEngine] postUploadWithUrl:k_uploadPhoto_url image:image fileName:[NSString stringWithFormat:@\"%@.png\", key] fileType:@\"PNG/JPEG/JPG\" success:^(id response) {
    if ([response[@\"STATUS\"] intValue] != 0) {
      NSString * str = @\"\";
      if (response[@\"ERRORDESC\"]) {
        str = response[@\"ERRORDESC\"];
      }else{
        str = @\"系统异常\";
      }
      [AlertHelper shareAlertHelper].onVC = self;
      [AlertHelper shareAlertHelper].alertTitle = str;
      [AlertHelper shareAlertHelper].alertMessage = nil;
      [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
         
      }];
    }else{
      [AlertHelper shareAlertHelper].onVC = self;
      [AlertHelper shareAlertHelper].alertTitle = @\"上传成功\";
      [AlertHelper shareAlertHelper].alertMessage = nil;
      [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
         
      }];
       
      if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@\"上传诊断证明\"]) {
        [self.successUploadDic setValue:response[@\"FILEID\"] forKey:@\"PROVEID\"];
      }
      if ([self.currentTapCell.photoDescribeLable.text isEqualToString:@\"上传病历首页\"]){
        [self.successUploadDic setValue:response[@\"FILEID\"] forKey:@\"CASEHOMEID\"];
      }
       
       
       
      NSLog(@\"上传结果  %@\", response);
    }
 
  } fail:^(NSError *error) {
    [AlertHelper shareAlertHelper].onVC = self;
    [AlertHelper shareAlertHelper].alertTitle = error.userInfo[@\"NSLocalizedDescription\"];
    [AlertHelper shareAlertHelper].alertMessage = nil;
    [[AlertHelper shareAlertHelper] alertVcWithSureAction:^(id response) {
       
    }];
 
  }];
   
   
  [self dismissViewControllerAnimated:YES completion:^{
     
  }];
}
          
 
 
 
/**上传文件*/
-(void)postUploadWithUrl:(NSString *)urlStr image:(UIImage *)image fileName:(NSString *)fileName fileType:(NSString *)fileTye success:(Success)success fail:(Faile)fail{
   
  NSString * resultStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
  self.success = success;
  self.failer = fail;
  AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@\"text/html\",@\"application/json\",@\"text/plain\" ,nil];
  [manager.requestSerializer setValue:@\"application/json\" forHTTPHeaderField:@\"Content-Type\"];
  manager.responseSerializer=[AFJSONResponseSerializer serializer];
  manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  [manager.securityPolicy setAllowInvalidCertificates:YES];
   
  UIApplication *application = [UIApplication sharedApplication];
  application.networkActivityIndicatorVisible = YES;
  [manager POST:resultStr parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
     
    NSData * imgData = UIImageJPEGRepresentation(image, 0.02);
    [formData appendPartWithFileData:imgData name:@\"FILENAME\" fileName:fileName mimeType:fileTye];
     
     
  } success:^(AFHTTPRequestOperation *operation, id responseObject) {
    success(responseObject);
    application.networkActivityIndicatorVisible = NO;
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    fail(error);
    application.networkActivityIndicatorVisible = NO;
  }];
}

以上就是本文的全部内容,希望对大家学习iOS程序设计有所帮助。

本文地址:https://www.stayed.cn/item/21931

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。