2014-07-09 2 views
0
<?php 
    error_reporting(0); 
    //$SITE_URL="http://shreebalajiinfotech.com/Android/Download_videos/"; 
    $SITE_URL="http://localhost/"; 
    $DIR="Videos"; 
    if($_REQUEST['category']=="") 
    { 
     echo 'Please pass folder name'; 
    } 
    $dir = $_REQUEST['category']; 
    $result = array(); 
    $SUB=$DIR ."/" .$dir; 
    //var_dump(is_dir($DIR ."/" .$dir)); 
    //$image="http://shreebalajiinfotech.com/Android/Download_videos/Videos/test1/119064635524.jpg"; 
    $cdir = scandir($SUB); 
    //$files2 = scandir($dir, 1); 
    //print_r($cdir);  
    ?>  
     <div id="video_container"> 
     <?php   
     foreach ($cdir as $value) 
     //for ($i=0; $i<count($cdir); $i++) 
     { 
     // if ($cdir[$i] != '.' && $cdir[$i] != '..') 
     //{ 
     //{    
     if (!in_array($value,array(".",".."))) 
     { 
      /*echo "<pre>"; 
      var_dump(each($value)); 
      echo "</pre>"; 
      echo $value; 
      */    
      //echo $key[$value];     
      //print_r($cdir[$i]); 
      $values=explode('.',$value);     
      if($values[1]=="mp4") 
      {     
       //$result[]=$value; 
       //echo $cdir[$i]; 
       //echo "<br/>"; 
     ?> 
     <script src="jquery.min.js"></script> 
     <script type='text/javascript'> 
     window.onload = function(){ 
     // $(document).ready(function(e) { 
     //$('#submit<?=$value;?>').click({ 
     var video = document.getElementById('my_video_<?=$value;?>'); 
     var thecanvas = document.getElementById('thecanvas'); 
     var img = document.getElementById('thumbnail_img'); 
     var div = document.getElementById('Imagecontainer'); 
     var sources = document.getElementById('video<?=$value;?>'); 
     alert(sources.src); 
     var videoname=sources.src.substring(sources.src.lastIndexOf('/')+1); 
      setTimeout(video.pause(draw(video, thecanvas, img,videoname)),6000); 
     if(video.paused==true) 
     { 
       setTimeout(video.play(),2000); 
     } 
     function draw(video, thecanvas, img,videoname) 
     { 
     alert(video); 
     // get the canvas context for drawing 
     var context = thecanvas.getContext('2d'); 
     // draw the video contents into the canvas x, y, width, height 
     context.drawImage(video, 0, 0, thecanvas.width, thecanvas.height); 
     // get the image data from the canvas object 
     var dataURL = thecanvas.toDataURL(); 
     alert(dataURL); 
     // set the source of the img tag 
     var img1 = document.createElement('img'); 
     img1.setAttribute('src', dataURL); 
     document.getElementById('Imagecontainer').appendChild(img1); 
     img1.setAttribute('src', dataURL); 
     $.ajax({ 
     type: "POST", 
     url: "upload.php", 
     data: {image: dataURL,folder:'<?=$_REQUEST['category'];?>',videoname:videoname}, 
     success: function(response) { 
       alert(response); 
       } 
       }); 
     } 
     }; 
     </script> 
     <video id="my_video_<?=$value;?>" class="<?=$value;?>" controls autoplay> 
     <source id="video<?=$value;?>" src="<?=$SITE_URL.$SUB ."/".$value;?>" type="video/mp4" /> 
     </video> 
      <canvas id="thecanvas"> 
     </canvas> 
     <div id="Imagecontainer"></div> 
     <img id="thumbnail_img" alt="Right click to save"/> 
     <?php 
     } 
     ?> 
     <br/> 
     <?php 
     } 
     } 
    ?> </div>    

위 코드는 foreach 루프의 첫 번째 요소에 대해서만 반복됩니다. 다른 요소의 경우 때때로 첫 번째 요소의 값만 가져 오지만 때로는 짜내기도합니다. 각 루프에 대해서만 Windows로드 이벤트,이 스크립트를 다른 이벤트에 대해 실행하도록 만드는 방법을 실행합니다.아약스는 첫 번째 반복 만 수행합니다.

+5

이 코드는 많은 코드를 통해 읽혀지며 많은 내용이 html입니다. 논리적이지 않은 (논평, 대부분의 html, 문제와 관련없는 php) 모든 내용을 잘라내어 문제를 보여주기 위해 최소한의 내용 만 포함한다면 훨씬 더 많은 것을 얻을 수 있습니다. 응답. – Hecksa

+0

이 코드를 편집했습니다.이 부분을 확인하십시오. –

+0

더 자세히 살펴 보지 않고서도 문제가'php' 루프 내에서'window.onload = function() {'라인에 있다고 확신합니다. 생성 된 HTML 코드는'window.onload'를 모두 덮어 쓰는 다중 스크립트 블록을 가지고 있으므로 마지막 블록 만 _win_이됩니다. –

답변

0

foreach 루프에서 너무 많은 작업을 수행하려고합니다. 그것은 많은 톤의 창을 뱉어 내고 있습니다. 함수를로드하십시오. 이것은 가난한 브라우저가 사용자의 의도를 이해하려고 시도하는 것에는 아무런 의미가 없습니다. 이 경우, 당신은 그냥 자바 스크립트 배열에 PHP에서 비디오 파일의 배열을 전달해야한다고 생각. 이 자바 스크립트는 솜씨 배열을 만드는 데 사용할 수있는 "자바 스크립트 객체 표기법"으로 알려진 형식으로 PHP 배열을 인코딩하여 작동

<script type='text/javascript'>  
    window.onload = function(){ 
     var videos = <?php echo json_encode($cdir); ?> 

     for(var i = 0; i < videos.length; i++) 
     { 
      //Setup each video 
     } 
    }; 
</script> 

:처럼 뭔가. 배열이 php가 아니라 javascript에 있으면 클라이언트 측에서 각각 을 반복하여 window.onload 함수를 수행하면 문제가 해결됩니다.

+0

안녕하세요 .. json_encode를 사용해 보았습니다. 제대로 작동하지 않습니다. 내 스크립트에

+0

여기서 "// 각 비디오 설치"라는 의미입니다. 필요한 요소를 만들고 채우십시오. 구현 방법을 선택하는 방법은 전적으로 사용자에게 달려 있습니다. 실제로 페이지에서 원하는 것을 설명하지 않았으므로 아무도 다른 요소를 사용할 수 없습니다. – Hecksa

+0

동영상에서 이미지를 가져 와서 스캔하는 폴더에 저장하고 싶습니다. –

관련 문제