[RESOLVIDO] Deletar arquivo - Unlink

Estou tentando usar o unlink para deletar arquivo, mas não o faz, dá o erro abaixo…

unlink(/var/www/d.xxxxxxxx.com.br/web//var/www/clients/client0/web2/web/portal/file/doc/178/xml_entrada/43190191404251000197550020001556191039215402.xml): No such file or directory

Mas o arquivo existe…

O php tem acesso fora da estrutura do servidor web?

Não tem… mas o caminho está dentro do servidor web…

A estrutura do servidor web começa a partir do www.

Tem que ver o que seu openbasedir diz.

Não sei se tem a ver mas nesse trecho aqui, depois de web tem duas barras “//”

1 Curtida

Não interfere…
Mas obrigado por pontuar…

Consegui resolver o problema da seguinte forma:

###################################################
#Encontrando e alterando a pasta padrao do SC para gravar
###################################################
$var_pasta_ini = $this->Ini->path_doc.’/’.[variavel_global].’/xml_entrada/’;
$var_pasta_fin = $var_pasta_ini;
$_nome_arquivo = $var_pasta_fin.{tx_arquivo};
###################################
#APAGA O ARQUIVO
###################################
$del = $_nome_arquivo;
if($del){
if(file_exists($del)){
unlink($del);
echo("<font color=“green”>" .$del . " deletado com sucesso!!");
}else{
echo("<font color=“red”>" . $del . " não existe!");
}
}else{
echo"Especifique o nome do arquivo.";
}
###################################

1 Curtida

Pensei que houvesse resolvido, mas não foi…:fearful:

1 Curtida

A primeira coisa é achar o caminho correto da pasta, para poder manipular o arquivo depois.

Copie este código em rootpath.php

<?php

echo '<h3>O seu site encontra-se hospedado sob o caminho absoluto (www):</h3>';
echo  $_SERVER['DOCUMENT_ROOT'];

?>

Depois copie ele manualmente usando o ‘ftp’ na pasta que estão os arquivos, ai chame ele
diretamente pelo http:// ai só usar o caminho correto que ele vai te fornecer no seu código.

E verificar se a pasta esta como chmod 755

1 Curtida

Eu já havia feito isto nas tentativas, inclusive eu abro o arquivo pela url… mas não consigo deletá-lo…

Cria uma blank só para o teste,

Cola só este código, e usa a url do rootpath.php, e veja
se retorna como arquivo encontrado:

$_FileName = '/caminho/para/arquivo.txt';

if (file_exists($_FileName)) {
    echo "O arquivo $_FileName existe";
} else {
    echo "O arquivo $_FileName não existe";
}
1 Curtida

Encontra… tudo bonito… só não deleta o infeliz…

Viu a permissão 755 na pasta?

1 Curtida

sim…
cheguei até colocar 777 para testes…
Fiz até testes para criar pastas, faz normal, crio com a permissão que eu quiser…

Ai troca o código da blank de teste por esse:

$_FileName = '/caminho/para/arquivo.txt';

if (file_exists($_FileName)) {
    echo "O arquivo $_FileName existe"."<BR>";
	unlink($_FileName);
	echo ' '."<BR>";
	echo "DELETADO >> $_FileName com Sucesso!!"."<BR>";
} else {
    echo "O arquivo $_FileName não existe"."<BR>";
}

E veja se dá alguma mensagem de erro.

1 Curtida

Este foi o código que no início eu usei… não dá erro nenhum, sendo que o caminho é correto… está logo no início…

Cria uma pasta de chama ‘teste’ com chmod 755 junto a raiz para ficar mas fácil,
ai copia e renomeia esse XML para teste.xml e cola na pasta ‘teste’ e tenta apagar ele.

a Rotina é essa mesma, aqui funciona normal.

1 Curtida

Se você consegue aí… coloque o comando que usa para apagar por favor…

Eu faço assim:

if(!is_dir($caminho)){mkdir($caminho, 0755);}

if (file_exists($caminho."/".{cnpj}.".pfx")){
    //Apaga o arquivo
	unlink($caminho."/".{cnpj}.".pfx");
}
2 Curtidas

2 Curtidas