Como faço para excluir um arquivo do meu servidor com PHP se o arquivo estiver em outro diretório?
Aqui está o layout da minha página:
projects/backend/removeProjectData.php
(esse arquivo exclui todas as minhas entradas do banco de dados e também deve excluir o arquivo relacionado)public_files/22.pdf
(o local onde o arquivo está localizado.)
Estou usando a unlink
função:
unlink('../../public_files/' . $fileName);
Mas isso sempre me dá um erro de que o arquivo não existe. Alguma ideia?
Respostas:
O seguinte deve ajudar
realpath
- Retorna o nome do caminho absoluto canonizadois_writable
- Informa se o nome do arquivo é gravávelunlink
- Exclui um arquivoExecute o caminho do arquivo pelo caminho real, verifique se o caminho retornado é gravável e, se houver, desvincule-o.
fonte
fonte
file_exists
função. Caso contrário, você receberá um erro se o arquivo não existir.Antes de tudo, verifique suas permissões no arquivo, para garantir que você pode: a) vê-lo em seu script; eb) consiga excluí-lo.
Você também pode usar um caminho calculado a partir do diretório em que está executando o script, por exemplo:
(no PHP 5.3, acredito que você possa usar a
__DIR__
constante em vez de,dirname()
mas ainda não a usei)fonte
Você pode excluir o arquivo usando
mas se você estiver excluindo um arquivo do caminho http, esse desassociação não funcionará corretamente. Você precisa fornecer um caminho de arquivo correto.
fonte
AIO solução, lida com tudo, não é meu trabalho, mas eu apenas me aprimorei. Aproveitar!
fonte
unlink
como nome para sua função.Sei que essa pergunta é um pouco antiga, mas isso é algo simples que funciona muito bem para excluir imagens do meu projeto em que estou trabalhando.
A
dirname(__FILE__)
seção imprime o caminho base para o seu projeto. A/img/tasks/
duas pastas para baixo do meu caminho de base. E, finalmente, há a minha imagem que desejo excluir, que você pode transformar em qualquer coisa que precisar.Com isso, não tive nenhum problema em acessar meus arquivos no servidor e excluí-los.
fonte