Jump to content

unlink


Go to solution Solved by Knot,

Recommended Posts

Posted

Boa tarde,

Uma ajudinha pf...

$id = $_GET["id"];
$sql = mysql_query("SELECT imagem FROM banner_categorias WHERE ID = $id");
$removeimagem = mysql_fetch_object($sql);
unlink($removeimagem);
$query= "DELETE FROM banner_categorias WHERE ID = $id";
$delete= mysql_query($query);
if(!$delete){
   echo "erro!! não foi possivel apagar dado.";   
}
else{
   echo"Dado removido com sucesso!";
   header("Location: bannerTopoCategoria.php");
}

O caminho da imagem esta guardado no campo imagem da tabela banner_categorias. (Ex. ../img/banner/categoria1.jpg)

A imagem é guardada nessa pasta quando é inserida uma linha através do formulario.

Quando vou remover, a linha é removida da tabela com sucesso, no entanto não estou a conseguir remover a imagem da pasta.

Não retorna nenhum erro...

Posted (edited)

Nao retorna nenhum erro pois nao estás apenas a retornar uma mensagem caso a QUERY seja bem executada e nao a função unlink

-Ve qual o resultado da $removeimagem logo apos a criares-a

-Põe um if de sucesso\erro no unlink e verifica qual a mensagem retornada!

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

Outra coisa é que deves usar pdo ou mysqli, o mysql velho vai ser removido daqui a pouco tempo

Edited by capesone
Posted

Nao retorna nenhum erro pois nao estás apenas a retornar uma mensagem caso a QUERY seja bem executada e nao a função unlink

-Ve qual o resultado da $removeimagem logo apos a criares-a

-Põe um if de sucesso\erro no unlink e verifica qual a mensagem retornada!

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

???

$removeimagem = mysql_fetch_object($sql); // <--- o que achas que a função 'mysql_fetch_object' retorna ?
unlink($removeimagem);
IRC : sim, é algo que ainda existe >> #p@p
Posted

O mais provavel é nao estar a apagar devido a patch da imagem nao estar bem definida.

Tenta usar tambem patchs absolutas

Confirmei e sim o caminho está correcto, no entanto também tentei com o patch absoluto e não resulto na mesma

O imagem é o caminho da imagem?

Se for já tentaste colocar unlink($removeimagem->imagem)?

Sem sucesso, o resultado parece ser o mesmo

  • Solution
Posted (edited)

Eu usei ainda hoje da seguinte maneira e funcionou bem:

$search_fich=mysqli_query($link, "select certificate_name from supplier_certificates where certificate_id='$cert'"); //pesquiso o nome do ficheiro
$row=mysqli_fetch_assoc($search_fich);
$dir="..\\supplier_certificates\\"; //defino o caminho relativo
$delete_file=unlink($dir.iconv('UTF-8', 'Windows-1252', $row['certificate_name'])); //removo o ficheiro com caminho/nome_ficheiro

Utilizei o iconv pq quando guardo o ficheiro também o uso, pois estava-me a dar problemas com acentuação no nome dos ficheiros.

Edited by Knot
Posted

Ou não estás a retornar nenhum resultado da base de dados ou o caminho está errado. Eu sei que o caminho que tens na base de dados está correcto, mas tens de ter em conta também o caminho de onde estás a executar a função para remover a imagem.

O ideal será criares uma constante que te indique a pasta ROOT e a partir daí colocar o caminho.

De salientar que as variáveis constantes devem estar definidas num ficheiro à parte, incluídas em todo o projecto e na pasta inicial. Portanto terias algo do género:

define('ROOTPATH', __DIR__);
unlink(ROOTPATH . $removeimagem);
Posted

Eu usei ainda hoje da seguinte maneira e funcionou bem:

$search_fich=mysqli_query($link, "select certificate_name from supplier_certificates where certificate_id='$cert'"); //pesquiso o nome do ficheiro
$row=mysqli_fetch_assoc($search_fich);
$dir="..\\supplier_certificates\\"; //defino o caminho relativo
$delete_file=unlink($dir.iconv('UTF-8', 'Windows-1252', $row['certificate_name'])); //removo o ficheiro com caminho/nome_ficheiro

Utilizei o iconv pq quando guardo o ficheiro também o uso, pois estava-me a dar problemas com acentuação no nome dos ficheiros.

Excelente, agora sim funcionou 🙂

Obrigado!! 👍

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.