2016-07-30 27 views
2

Ich möchte Bild und Video in der gleichen Zeit hochladen, die unten Codierung Ich habe versucht, aber nicht auf Server hochladen, ich möchte ein Thumbnail des Videos, so werde ich Miniaturbild nehmen aus dem gleichen Video und Bild und Video, das ich mir den CodeIch möchte ein Bild und Video in der gleichen Zeit von UIImagePicker hochladen

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
    { 

       NSLog(@"Image And Video will be uploaded"); 

       img = [info valueForKey:UIImagePickerControllerOriginalImage]; 

    NSURL *imurl=[info valueForKeyPath:UIImagePickerControllerMediaURL]; 
    UIImage *croppedImage = [appdel imageWithImage:img scaledToWidth:400]; 

      NSString *finalUniqueImageNAme1; 
      NSString *finalUniqueImageNAme2; 


       thumbimages = [self thumbnailImageFromURL:imurl]; 

       NSData *videoData = [NSData dataWithContentsOfURL:imurl]; 




       if(videoData.length) 
       { 

        NSDate *currentDate = [[NSDate alloc] init]; 
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
        NSString *localDateString = [dateFormatter stringFromDate:currentDate]; 
        NSString* cleanedString = [[localDateString stringByReplacingOccurrencesOfString:@"." withString:@""]stringByReplacingOccurrencesOfString:@":" withString:@""]; 
        NSString *cleanedString2 = [cleanedString stringByAppendingFormat:@"%d",1]; 

       finalUniqueImageNAme1 = [cleanedString2 stringByAppendingString:@".mp4"]; 

       } 


       if(thumbimages != nil) 
       { 

        NSDate *currentDate = [[NSDate alloc] init]; 
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
        NSString *localDateString = [dateFormatter stringFromDate:currentDate]; 
        NSString* cleanedString = [[localDateString stringByReplacingOccurrencesOfString:@"." withString:@""]stringByReplacingOccurrencesOfString:@":" withString:@""]; 
        NSString *cleanedString2 = [cleanedString stringByAppendingFormat:@"%d",1]; 



        finalUniqueImageNAme2 = [cleanedString2 stringByAppendingString:@".jpg"]; 


       } 
       NSData *imageData = UIImageJPEGRepresentation(thumbimages, 90); 
       NSString *urlString = @"http://vygears.com/tcdc-portfolio/Abdul/chat/upload/Vupload_file.php"; 
       NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
       [request setURL:[NSURL URLWithString:urlString]]; 
       [request setHTTPMethod:@"POST"]; 
       NSString *boundary = @"---------------------------14737809831466499882746641449"; 
       NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
       [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

       NSMutableData *body = [NSMutableData data]; 
       [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 



       [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file1\"; filename=\"%@\"\r\n",finalUniqueImageNAme1] dataUsingEncoding:NSUTF8StringEncoding]]; 
       [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 


       [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file2\"; filename=\"%@\"\r\n",finalUniqueImageNAme2] dataUsingEncoding:NSUTF8StringEncoding]]; 
       [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 




        [body appendData:[NSData dataWithData:videoData]]; 

        [body appendData:[NSData dataWithData:imageData]]; 



       [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

       [request setHTTPBody:body]; 

       // NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

       // NSLog(@"Successfully uploaded"); 

       NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
       if(conn) 
       { 
        NSLog(@"Connection Successful"); 
        // [self dismissModalViewControllerAnimated:true]; 
        [self dismissViewControllerAnimated:YES completion:nil]; 
       } 
       else 
       { 
        NSLog(@"Connection could not be made"); 
       } 
      } 
     } 

     - (UIImage *)thumbnailImageFromURL:(NSURL *)videoURL { 

      AVURLAsset *asset = [[AVURLAsset alloc] initWithURL: videoURL options:nil]; 
      AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
      NSError *err = NULL; 
      CMTime requestedTime = CMTimeMake(12,13);  // To create thumbnail image 
      CGImageRef imgRef = [generator copyCGImageAtTime:requestedTime actualTime:NULL error:&err]; 
      NSLog(@"err = %@, imageRef = %@", err, imgRef); 
      thumbnailImage = [[UIImage alloc] initWithCGImage:imgRef]; 
      CGImageRelease(imgRef); // MUST release explicitly to avoid memory leak 
      return thumbnailImage; 
     } 

Antwort

2

Schließlich bekommen habe, nachdem auf sie verbringen einige Zeit

img = [info valueForKey:UIImagePickerControllerOriginalImage]; 

NSURL *imurl=[info valueForKeyPath:UIImagePickerControllerMediaURL]; 
UIImage *croppedImage = [appdel imageWithImage:img scaledToWidth:400]; 
NSLog(@"Image And Video will be uploaded"); 

     NSString *finalUniqueImageNAme1; 
     NSString *finalUniqueImageNAme2; 
     NSData *videoData = [NSData dataWithContentsOfURL:imurl]; 
     thumbimages = [self thumbnailImageFromURL:imurl]; 


     if(videoData.length) 
     { 

      NSDate *currentDate = [[NSDate alloc] init]; 
      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

      [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
      NSString *localDateString = [dateFormatter stringFromDate:currentDate]; 
      NSString* cleanedString = [[localDateString stringByReplacingOccurrencesOfString:@"." withString:@""]stringByReplacingOccurrencesOfString:@":" withString:@""]; 
      NSString *cleanedString2 = [cleanedString stringByAppendingFormat:@"%d",1]; 

      finalUniqueImageNAme1 = [cleanedString2 stringByAppendingString:@".mp4"]; 

     } 


     if(thumbimages != nil) 
     { 

      NSDate *currentDate = [[NSDate alloc] init]; 
      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

      [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
      NSString *localDateString = [dateFormatter stringFromDate:currentDate]; 
      NSString* cleanedString = [[localDateString stringByReplacingOccurrencesOfString:@"." withString:@""]stringByReplacingOccurrencesOfString:@":" withString:@""]; 
      NSString *cleanedString2 = [cleanedString stringByAppendingFormat:@"%d",1]; 



      finalUniqueImageNAme2 = [cleanedString2 stringByAppendingString:@".jpg"]; 


     } 

     NSData *imageData = UIImageJPEGRepresentation(thumbimages, 90); 

     NSString *urlString = @"http://vygears.com/tcdc-portfolio/Abdul/chat/upload/Vupload_file.php"; 
     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
     [request setURL:[NSURL URLWithString:urlString]]; 
     [request setHTTPMethod:@"POST"]; 
     NSString *boundary = @"---------------------------14737809831466499882746641449"; 
     NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
     [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 
     NSMutableData *body = [NSMutableData data]; 

     if (imageData) 
     { 


      //======= Image Data=======// 

      [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file2\"; filename=\"%@\"\r\n",finalUniqueImageNAme2] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

      [body appendData:[NSData dataWithData:imageData]]; 
      [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

      //======= Video Data=======// 


      [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file1\"; filename=\"%@\"\r\n",finalUniqueImageNAme1] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

      [body appendData:[NSData dataWithData:videoData]]; 
      [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

     } 

     [request setHTTPBody:body]; 
     NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
     if(conn) 
     { 
      NSLog(@"Connection Successful"); 
      // [self dismissModalViewControllerAnimated:true]; 
      [self dismissViewControllerAnimated:YES completion:nil]; 
     } 
     else 
     { 
      NSLog(@"Connection could not be made"); 
     } 
    } 
auf Server hochladen möchte