2013-11-26 2 views
0

파일 (이 경우 동영상)을 업로드하고 표시하는 PHP 사이트를 만들려고합니다. 배열에 저장하고 페이지에 표시하려고합니다. 문제는 페이지에 업로드 된 마지막 동영상 만 표시된다는 것입니다. 즉, 배열은 마지막으로 업로드 한 파일 만 저장합니다. 배열이 첫 번째로 업로드 된 파일을 $array[0]에 저장하고 두 번째 파일을 $array[1]에 저장하는 방법은 무엇입니까? 그런 다음 표시 하시겠습니까? 여기 PHP에서 배열을 사용하여 업로드 된 파일 표시

내 코드 (HTML 형식)

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
<p>Video to Upload: <br> <input type="file" name="video" /></p> 
<p><input type="submit" name="Submit" value="Submit" /></p></form> 

PHP 코드의 당신은 내 모든 파일의 목록을 얻을하려는 경우, 코멘트에서 언급 한 바와 같이 (upload.php)

<?php 
$videoname = $_FILES["video"]["name"]; 


$tmp_name = $_FILES["video"]["tmp_name"]; 

$thevideos = array(); 

if (isset($videoname)) 
{ 
    if (!empty($videoname)) 
    { 
     $location = 'uploaded/'; 

     move_uploaded_file($tmp_name, $location.$videoname); 


     $thevideos[] = $videoname; // the array is only storing $videoname in $the videos[0]?? 


     for ($i = 0; $i <= count($thevideos); $i++) 
     { 
      echo "<video width=\"320\" height=\"240\" controls> 
      <source src=\"/uploaded/" .$thevideos[$i]. "\"> 
      </video> <br>"; 
     } 

    } 
    else 
    { 
     echo "Please choose a file."; 
    } 

} 

?> 
+0

누구나 PHP/ASP/CGI/및 기타 스크립트 파일을 업로드 할 수 있으므로 쉘을 업로드하고 서버를 파괴 할 수 있습니다 - 모든 파일보기 - 모든 소스 코드보기 - DB 자격 증명 - 등등. – h2ooooooo

+0

나는 완전히 알고있다, 일단 프로그램이 가정 된대로 기능상이면 나는 금지를 올릴 것이다. – user3037589

+0

그래서 사용자가 한 번에 하나의 비디오 만 업로드합니까? 이전의 모든 업로드 동영상을 표시하고 싶습니까? '$ thevideos'는 매번 빈 배열이 될 것이므로 이전에 업로드 한 비디오를 가져올 방법이 필요합니다. –

답변

0

디렉토리에있는 경우 scandir 또는 glob 기능을 사용해야합니다.

는 디렉토리의 모든 콘텐츠를 나열해야하고, 와일드 카드 또는 확장자를 기반으로 파일을 나열해야 할 경우 glob을 선택하는 것이 좋습니다.