IOS 上传图片或视频

    xiaoxiao2022-06-28  38

    目录(?)[-]

    提交多张图片上传视频或图片

    保存图像:

    [objc]  view plain copy - (void)viewDidLoad    {       [super viewDidLoad];           // 保存每次添加的图片       self.imageDataArray = [NSMutableArray array];             }   [objc]  view plain copy -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info   {       UIImage *originalImage = [info valueForKey:UIImagePickerControllerEditedImage] ;              // 得到图片的缓存数据       NSData * imagedata = UIImageJPEGRepresentation([originalImage imageByScalingAndCroppingForSize:CGSizeMake(originalImage.size.width, originalImage.size.height)], 0.5);       static int index = 1;       NSString * newImageName = [NSString stringWithFormat:@"%@%zi%@", Image_Name, index, @".jpg"];       NSString  *jpgPath = NSHomeDirectory();       jpgPath = [jpgPath stringByAppendingPathComponent:@"Documents"];       jpgPath = [jpgPath stringByAppendingPathComponent:newImageName];       [imagedata writeToFile:jpgPath atomically:YES];                     [self.imageDataArray addObject:imagedata];              index ++ ;              // 显示当前上传图片       [self showUploadImage:imagedata];              [picker dismissViewControllerAnimated:YES completion:^{       }];   }   提交单张图片 :

    [objc]  view plain copy // 向服务器提交图片       AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];       manager.responseSerializer = [AFHTTPResponseSerializer serializer];              // 显示进度       [manager POST:urlstr parameters:[self Params] constructingBodyWithBlock:^(id<AFMultipartFormData> formData)       {           static int nindex = 1;           // 单张图片上传           NSString * paramName = [NSString stringWithFormat:@"%@%zi", Image_Name, nindex];           NSString * newImageName = [NSString stringWithFormat:@"%@.jpg", paramName];           NSString * imagepath = NSHomeDirectory();           NSString * path = [imagepath stringByAppendingPathComponent:@"Documents"];           NSBundle * Bundle = [NSBundle bundleWithPath:path];           NSURL    * fileURL = [Bundle URLForResource:newImageName withExtension:nil];           [formData appendPartWithFileURL:fileURL name:paramName error:nil];       }       success:^(AFHTTPRequestOperation *operation, id responseObject)        {                   NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];            NSLog(@"完成 %@", result);                }        failure:^(AFHTTPRequestOperation *operation, NSError *error)        {            NSLog(@"错误 %@", error.localizedDescription);        }];  

    提交多张图片:

    [objc]  view plain copy // 向服务器提交图片       AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];       manager.responseSerializer = [AFHTTPResponseSerializer serializer];                     // 显示进度       [manager POST:urlstr parameters:[self Params] constructingBodyWithBlock:^(id<AFMultipartFormData> formData)       {           // 上传 多张图片           for(NSInteger i = 0; i < self.imageDataArray.count; i++)           {               NSData * imageData = [self.imageDataArray objectAtIndex: i];               // 上传的参数名               NSString * Name = [NSString stringWithFormat:@"%@%zi", Image_Name, i+1];               // 上传filename               NSString * fileName = [NSString stringWithFormat:@"%@.jpg", Name];                              [formData appendPartWithFileData:imageData name:Name fileName:fileName mimeType:@"image/jpeg"];           }       }       success:^(AFHTTPRequestOperation *operation, id responseObject)        {                   NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];            NSLog(@"完成 %@", result);                }        failure:^(AFHTTPRequestOperation *operation, NSError *error)        {            NSLog(@"错误 %@", error.localizedDescription);        }];  

    上传视频或图片:

    [objc]  view plain copy // 向服务器提交图片       AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];       manager.responseSerializer = [AFHTTPResponseSerializer serializer];              // 显示进度       [manager POST:urlstr parameters:[self Params] constructingBodyWithBlock:^(id<AFMultipartFormData> formData)       {           if (mediaDatas.count > 0)            {               NSObject *firstObj = [mediaDatas objectAtIndexSafe:0];               if ([firstObj isKindOfClass:[UIImage class]])                {// 图片                   for(NSInteger i=0; i<mediaDatas.count; i++)                    {                       UIImage *eachImg = [mediaDatas objectAtIndexSafe:i];                       //NSData *eachImgData = UIImagePNGRepresentation(eachImg);                       NSData *eachImgData = UIImageJPEGRepresentation(eachImg, 0.5);                       [formData appendPartWithFileData:eachImgData name:[NSString stringWithFormat:@"img%d", i+1] fileName:[NSString stringWithFormat:@"img%d.jpg", i+1] mimeType:@"image/jpeg"];                   }               }else                {// 视频                   ALAsset *asset = [mediaDatas objectAtIndexSafe:0];                   NBLog(@"asset=%@, representation=%@, url=%@", asset, [asset defaultRepresentation], [asset defaultRepresentation].url);                   if (asset != nil)                    {                       NSString *videoPath = [NSDocumentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.mov", 0]];    // 这里直接强制写一个即可,之前计划是用i++来区分不明视频                       NSURL *url = [NSURL fileURLWithPath:videoPath];                       NSError *theErro = nil;                       BOOL exportResult = [asset exportDataToURL:url error:&theErro];                       NBLog(@"exportResult=%@", exportResult?@"YES":@"NO");                                              NSData *videoData = [NSData dataWithContentsOfURL:url];                       [formData appendPartWithFileData:videoData name:@"video1" fileName:@"video1.mov" mimeType:@"video/quicktime"];                       NBLog(@"method 2");                   }               }           }       }       success:^(AFHTTPRequestOperation *operation, id responseObject)        {                NSString *result = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];            NSLog(@"完成 %@", result);                }        failure:^(AFHTTPRequestOperation *operation, NSError *error)        {            NSLog(@"错误 %@", error.localizedDescription);        }];  
    转载请注明原文地址: https://ju.6miu.com/read-1124723.html

    最新回复(0)