2013-12-19 2 views
0

나는 가족, 몇 명의 친구, 그리고 내가 사용하는 간단한 파일 호스팅 사이트를 만들고자한다. 나는 하나의 것을 제외하고 전체 시스템 설정을 가지고있다. 나는 FTP에 접근 할 필요없이 사용자가 파일을 삭제할 수있는 방법을 찾을 수 없다. 아래에있는 사용자에게 파일을 나열하는 데 사용하는 코드를 게시합니다. 사용자가 업로드하는 각각의 새 파일에 대해 삭제 버튼이 자동으로 생성되도록하고 싶습니다.파일 호스팅 사이트에서 PHP를 사용하여 디렉토리의 파일을 삭제하는 방법은 무엇입니까?

코드 파일을 나열하려면 : 당신은 unlink() PHP 함수 사용할 수 있습니다

$directory = 'uploads/' . $_SESSION['user'] . '/'; 
if ($handle = opendir($directory)) { 
    echo '<h3>Your files are listed below</h3>';  
    while ($file = readdir($handle)) { 
     if ($file != '.' && $file != '..') { 
      echo '<a target="_blank" href="' . $directory . '/' . $file . '">' . $file . '<br>';  
     } 
    } 
} 

답변

0
$directory = 'uploads/' . $_SESSION['user'] . '/'; 

if(isset($_REQUEST['DelFile'])) { 
    $DeleteFile = $_REQUEST['DelFile']; 
    if(file_exists($directory.$DeleteFile)) { 
     @unlink($directory.$DeleteFile); 
     header("location:SamePageURL.php?msg=1"); 
    } else header("location:SamePageURL.php?msg=2"); 
} 

if ($handle = opendir($directory)) { 
echo '<h3>Your files are listed below</h3>';  
    while ($file = readdir($handle)) { 
     if ($file != '.' && $file != '..') { 
      echo '<a target="_blank" href="'.$directory.'/'.$file.'">' . $file.' <a href="SamePageURL.php?DelFile='.$file.'">Delete</a> <br>'; 
     } 
    } 
} 

if(isset($_REQUEST['msg'])) { 
    $Message = $_REQUEST['msg']; 
    if($Message == 1) echo "File deleted sucessfully"; 
    else if($Message == 1) echo "File not found"; 
} 
+0

404 오류를 반환하고 객체를 찾을 수 없습니다. –

+0

은 PHP 페이지 이름으로 SamePageURL.php를 대체합니다. –

+0

이제 머리글을 수정할 수 없습니다. –

1

참조 : http://www.php.net/unlink

<?php 
    $mask = "*.jpg" 
    array_map("unlink", glob($mask)); 
?> 
+0

내가 그것을 시도했지만 어떤 파일을 사용하지 않습니다, 'while' 루프를 사용하여 파일을 나열 할 때 –

+0

꼭 필요한 파일이 있는지 확인하십시오 파일을 삭제할 수 없습니다. –

+0

나는 모든 권한을 가지고 있습니다. 일반적으로 파일 유형이나 파일에 대한 정보를 알지 못합니다. 사용자가 원하는 파일을 업로드 할 수 있음을 기억하십시오. –

관련 문제