2012-09-06 2 views
0

드롭 다운 목록을 만들고, 특정 폴더의 파일을 표시하고, 삭제 버튼을 사용하여 선택한 파일을 삭제하려고합니다.드롭 다운 목록에서 선택한 파일 삭제

드롭 다운 목록 :

<?php 
    $dirname = "files"; 
    $dir = opendir($dirname); 
    echo '<form action="delete.php" method="get">'; 
    echo '<select name="file2">'; 
    while(false != ($file = readdir($dir))) 
    { 
     if(($file != ".") and ($file != "..")) 
     { 
      echo "<option value=".$file.">$file</option>"; 
     } 
    } 
    echo '</select>'; 
    echo '<input type="submit" value="Delete" class="submit" />'; 
    echo '</form>'; 
?> 

delete.php 파일 :

<?php 
    $dirpath = "files"; 
    $file_to_delete = $_POST['file2']; 
    if (unlink ($dirpath.'/'.$file_to_delete)) { 
     echo $file_to_delete . " deleted."; 
    } else { 
     echo "Error."; 
    } 
?> 

내가 다음 파일을 눌러 삭제를 선택하려고 할 때, 나는 다음과 같은 오류 얻을 :

Warning: unlink(files/): Is a directory in /xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/delete.php on line 4 Error.

개인 정보로 인해 xxx가 출력되었습니다. :) 모든 파일을 d 개로 만들려고합니다. eleted는 chmod 777입니다. 그 .txt 파일을 삭제하려고합니다.

확실하지 내가 무엇을 누락 또는 내가 잘못 여기했다 .../

+0

삭제하려고하기 전에'print_r ($ _ POST [ 'file2'])'이 오는 것을 보았습니까? –

답변

2

양식에 method="get" 가지고 있기 때문에 그것은, $_GET입니다 : 그래서

$file_to_delete = $_GET['file2']; 

:

<?php 
    $dirpath = "files"; 
    $file_to_delete = $_GET['file2']; 
    if (unlink ($dirpath.'/'.$file_to_delete)) { 
     echo $file_to_delete . " deleted."; 
    } else { 
     echo "Error."; 
    } 
?> 

게시하려는 경우 양식을 method="post"으로 변경하십시오.

+0

아, 훌륭합니다. :) 매일 새로운 것을 배웁니다. Mihai 대단히 감사합니다. – denully

관련 문제