Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Augusto

[Resolvido] Deletar arquivos do diretório

Recommended Posts

Fala galera, beleza?

Eu tava precisando arrumar um jeito de listar os arquivos de um diretório e ao lado de cada arquivo colocar alguma coisa pra deletar esse arquivo do diretório sem ser via FTP.Porque eu to fazendo o upload de uns arquivos, mais caso eu faça do arquivo errado eu possa deletar ele, somente o arquivo que eu quero.

Quem puder me dar uma luz, agradeceria muito....

 

vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

para ler os arquivos de um diretório, você pode usar

glob()

e para deletar

unlink()

 

veja no manual:

http://php.net/unlink

http://php.net/glob

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho o script para listar os arquivos que estão na pasta, queria ver se tem um modo de colocar um "Deletar" ao lado do arquivo para apaga-lo.

Segue abaixo o script...

 

<?$files = array();

$d = dir('../util_1101/up/');

while(false !== ($file = $d->read())){
  
  if(($file{0} != '.') && ($file{0} != '~') &&
    (substr($file, -3) != 'LCK') &&
       ($file != basename($_SERVER['PHP_SELF']))    ) {
	$files[$file] = stat($file);
  }
}

$d->close();

echo '<table width="60%" cellpadding="0" cellspacing="0" border="0">';
ksort($files);
date_default_timezone_set('Brazil/East');

foreach ($files as $name => $stats) {

  echo "<tr><td><a href=\"../util_1101/up/{$name}\" classe=\"classe2\">{$name}</a></td>\n";
  echo "<td align='right'>{$stats['size']}</td>\n";
  echo '<td>', date('d/m/Y h:ia', $stats['mtime']), "</td></tr>\n";

}

echo '</table>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. mais ou menos assim olha:

 

foreach ($files as $name => $stats) {

  echo "<tr><td><a href=\"../util_1101/up/{$name}\" classe=\"classe2\">{$name}</a></td>\n";
  echo "<tr><td><a href=\"deletar.php?file={$name}\">Deletar</a></td>\n";

e então no arquivo

deletar.php

você faz:

<?php

unlink( '../util_1101/up/'.$_GET['file'] );
entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi e já fiz, pegou o arquivo certo, porém não excluiu.....

Já dei permissão 777 no arquivo e mesmo assim não excluiu.....

tem idéia do que possa ser?

Vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu não to conseguindo pegar o arquivo dentro da função...

Eu tentei armazenar ela dentro de uma variavel e fiz um if...

 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

$_GET['file'] = $arquivo;
echo "<script>alert ('$arquivo');</script>";
if (!unlink($arquivo))
{
  echo ("Erro ao deletar $arquivo");
}
else
{
  echo ("Deletado $arquivo com sucesso!");
}
?>

Os erros que estão dando são esses...

 

Notice: Undefined variable: arquivo in /home/escolage/public_html/teste/up/deletar.php on line 5

Notice: Undefined variable: arquivo in /home/escolage/public_html/teste/up/deletar.php on line 6

Notice: Undefined variable: arquivo in /home/escolage/public_html/teste/up/deletar.php on line 7

Warning: unlink() [function.unlink]: No such file or directory in /home/escolage/public_html/teste/up/deletar.php on line 7

Notice: Undefined variable: arquivo in /home/escolage/public_html/teste/up/deletar.php on line 9

Compartilhar este post


Link para o post
Compartilhar em outros sites

hein?!

 

href="deletar.php?file={$name}"
então é GET e não POST

 

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

$arquivo = $_GET['file'];
echo "<script>alert ('$arquivo');</script>";
if (!unlink($arquivo))
{
  echo ("Erro ao deletar $arquivo");
}
else
{
  echo ("Deletado $arquivo com sucesso!");
}
?>
ne?!

 

mas lembre-se do diretório..

se você não estiver enviado junto com a URL, vai precisar concatenar na hora do unlink()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já usei o POST tb, só que não funcionou, o arquivo está no mesmo diretório do deletar.php.....

Será que é por isso eu to indicando a pasta pelo href no php index??!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

?

 

eu falei para usar GET

$arquivo = $_GET['file'];

se você não conseguir, poste sempre o teu código mais atual, e a mensagem de erro.

interprete oque aparecer para você. Entenda.

 

se o deletar.php está no mesmo diretório do arquivo a ser deletado, então você não precisa passar mais nada além do nome do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

?

 

eu falei para usar GET

$arquivo = $_GET['file'];

se você não conseguir, poste sempre o teu código mais atual, e a mensagem de erro.

interprete oque aparecer para você. Entenda.

 

se o deletar.php está no mesmo diretório do arquivo a ser deletado, então você não precisa passar mais nada além do nome do arquivo.

 

Eu não to conseguindo pegar a variavel com o nome do arquivo para ser deletado, nem dentro da pasta do arquivo a ser excluido nem fora. A variavel esta vindo vazia....

Será que eu to tentando pegar ela errada?

Eu já usei o alert pra mostrar a variavel e ela veio vazia...

 

echo "<tr><td><a href=\"up/{$name}\" classe=\"classe2\">{$name}</a></td>\n";
  // deletar o arquivo
  echo "<tr><td><a href=\"deletar.php?file={$name}\">Deletar</a></td>\n";

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

$_GET['file'] = $arquivo;

if (!unlink( 'up/'.$arquivo))
{
  echo ("Erro ao deletar $arquivo");
}
else
{
  echo ("Deletado $arquivo com sucesso!");
}
?>

se eu colocar no código o nome do arquivo a ser deletado funciona.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara

$_GET['file'] = $arquivo;
é ao contrário!

 

$arquivo = $_GET['file'];
do jeito que você fez não faz sentido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.