Apagar ficheiro de uma Pasta em php

jonassavimby

Power Member
Yo pessoal, alguem sabe algum codigo que dê para apagar ficheiros de uma paste, por exemplo .jpg ou outros, em codigo php.

Pra nos nao ficarmos com o servidor cheio de imagens sem precisarmos lol:-D:-D

Thanks
 
Calma, @scroll LOL...
O amigo @jonassavimby precisa primeiro saber que imagens quer apagar.

O meu conselho vai no seguinte sentido:
1º Crias uma script que permita apresentar no browser a listagem de imagens que tens na pasta. Podes não querer apagar todas, não é?...

2º Nessa apresentação podes colocar um mecanismo de eliminar a imagem desejada, nomeadamente através de um link, ou coisa do género. Até dá para criares um sistema relativametente simples que permite ver a imagem ou apagá-la.
 
Vá... Antes que depois venhas pedir como se faz, toma lá o trabalho feito:

1º Abre o teu editor de PHP e copia e cola o seguinte código:
Código:
<?php
    
    
    if ($_REQUEST['act']==1){
        unlink("imagens/".$_REQUEST['f']);
        echo $_REQUEST['f']." eliminado com sucesso.<br><br>";
    }
    
    $pasta=opendir("imagens");
    while(($ficheiro=readdir($pasta))!=false){
        
        if($ficheiro<>"." && $ficheiro<>".."){
        echo '<a href="teste.php?act=1&f='.$ficheiro.'">[x]</a>   -
              <a href="imagens/'.$ficheiro.'" target="_self">'.$ficheiro.'</a><br>';
        }
    }
    
?>


2º Grava isso com o nome 'teste.php', caso contrário tens que alterar o script.

Se quiseres que te explique o que faz cada linha, também se pode arranjar.
 
Ok. Então cá vai.
Código:
<?php
    
    
  1 | if ($_REQUEST['act']==1){
  a |     unlink("imagens/".$_REQUEST['f']);
  b |     echo $_REQUEST['f']." eliminado com sucesso.<br><br>";
    | }
    
  2   $pasta=opendir("imagens");
  3   while(($ficheiro=readdir($pasta))!=false){
        
  4      if($ficheiro<>"." && $ficheiro<>".."){
  5      echo '<a href="teste.php?act=1&f='.$ficheiro.'">[x]</a>   -
              <a href="imagens/'.$ficheiro.'" target="_self">'.$ficheiro.'</a><br>';
        }
    }
    
?>

Como deves reparar, o que está a amarelo foi apenas introduzido para servir de referência à explicação de cada linha.

Vamos, por instantes, ignorar o bloco 1 e passar directamente para o ponto 2 e já vais perceber porquê.
No ponto 2 definimos uma variável $pasta que serve de referência ao processo de abertura da pasta definida na instrução opendir("imagens"). Depois, no ponto 3, iniciou-se a construção de um ciclo no qual vai ser carregado (em cada volta de ciclo) o nome de cada um dos ficheiros contidos na pasta cuja referência é a variável $pasta. O que a instrução While define é que, enquando a variável $ficheiro for diferente de falso, isto é, enquanto existirem ficheiros na pasta e o comando readdir retorne o nome do ficheiro seguinte, o ciclo é executado.

Ao ser executada uma volta de ciclo com sucesso, surge a linha 4 na qual é analizado se $ficheiro é diferente de '.' ou '..'. Esta filtragem é necessária uma vez que iriam aparecer no browser listados logo à cabeça essas duas entradas que têm a sua justificação vinda já do velhinho MSDOS(não interessa agora vir ao caso). A instrução if da linha 4 define então um filtro para que apenas sejam processados os nomes de ficheiros que não sejam '.' ou '..'. Segue-se então o ponto 5 no qual é enviado um output para o browser.

Neste ponto 5, a instrução echo inicia-se fazendo um link para o próprio script, seguido de 2 variáveis:

1º Act=1 - Indicador de que existe uma variável Act(action)(pode ter outro nome) que tem um valor 1 no sentido de ser avaliada no bloco 1 do código. Quando o código verifica que existe a variável Act com o valor 1, executa o bloco de código assinalado em 1 (já lá vamos).
2º f=$ficheiro - a identificação completa do nome do ficheiro listado.

O que estas duas variáveis vão permitir é que o script seja "reeniciado" com as informações suficientes para que o bloco 1 de código seja executado. Ao ser executado esse bloco, é feita a eliminação do ficheiro através da instrução unlink (a), seguida dos parâmetros devidamente concatenados e, por fim, é apresentada uma frase ao utilizador informando que o acto de eliminação do ficheiro foi realizado com sucesso (b).

Espero que tenha sido relativamente claro.:)
 
Última edição pelo moderador:
Back
Topo