Caros Colegas, criei uma aplicação para salvar um arquivo ate tudo bem, porem quando apago no form, não apaga o arquivo que esta dentro da aplicação _lib/file/doc.
Como fazer para apagar o mesmo, desde já agradeço a todos pela ajuda.
Caros Colegas, criei uma aplicação para salvar um arquivo ate tudo bem, porem quando apago no form, não apaga o arquivo que esta dentro da aplicação _lib/file/doc.
Como fazer para apagar o mesmo, desde já agradeço a todos pela ajuda.
Alguem por favor
Crie um botão php e no botão use o comando
unlink(nome_do_arquivo);
Caro Almeida, mas para cada arquivo terei que criar o botão. O como ficaria para o usuário?
não precisa, coloca o comando no evento onafterdelete.
Por Favor colegas, agradeço o auxilio, mas ainda não entendi como fazer.
Seguindo a ideia do Haroldo, no evento onAfterDelete coloque a funcao. Nesse formulário deve ter um campo que contenha o nome do arquivo.
unlink({campo_nome_arquivo});
PS: Tem que fornecer o caminho/nomearquivo para o unlink.
Caro Almeida, fiz como voce falou mas não funcionou, terei que colocar o nome de cada arquivo, mas são 2GB de arquivos com nomes diferentes
Na sua tabela tem algum CAMPO que faça referência ao nome do arquivo e extensão?
Se tiver:
Isso é apenas um exemplo, adapte sua lógica.
[code]$sql = select nome_arquivo, extensao FROM tabela WHERE idarquivo = 1; ///exemplo
sc_lookup(rs, $sql);
$caminho = “path/files/”;
$arquivo = $caminho . {rs[0][0]} . “.” . {rs[0][1]};
unlink($arquivo); //observe que usei a variavel arquivo; contendo o Caminho + Arquivo + Extensão.[/code]
Se não tiver.
Veja sobre o comando opendir e percorra o diretório adicionando no banco um nome do arquivo e extensão, pois é de suma importância ter esse dados salvos.
Caros desculpem-me mas ficou complicado e não estou conseguindo entender, segue minha aplicação como ficaria utilizando esta tebela.

Teria como postar o resultado de um select a uma linha sua a essa tabela?
Para ver como os dados estão sendo salvos.
Os campos arquivo_1 e arquivo_2 salva o nome do arquivo.extensao, caminho/arquivo.extensao ?
Como é salvo esses dados no banco arquivo_1 e arquivo2?
Segue veja se é isso.

Aguardo retorno ansiosamente.
Poxa cara, tinha esquecido de seu tópico, abri ele e depois esqueci, ae ele sumiu dos principais rsrs…
Analisando, a unica opção que me veio a cabeça é essa mesmo. Agora com algumas modificações.
no evento, onAfterDelete coloque:
[code]
$files[] = $this->Ini->path_embutida . “/_lib/file/doc/” . {arquivo_1};
$files[] = $this->Ini->path_embutida . “/_lib/file/doc/” . {arquivo_2};
foreach($files as $file) {
if(file_exists($file)) {
unlink($file);
}
}[/code]
Caro Almeida desculpe, mas esta dando este erro
unlink(/home/storage/6/8d/86/portalmetodo/public_html/portal//_lib/file/doc/) [function.unlink]: Is a directory
o que pode ser e o que seria path_embutida
hum… parece que o formulário não está retornando o caminho para o arquivo.
eveno onBeforeDelete
$sql = "SELECT
arquivo_1,
arquivo_2
FROM assinantes
WHERE id = " . {id};
sc_lookup(rs, $sql);
[del_arquivo_1] = {rs[0][0]}
[del_arquivo_2] = {rs[0][1]}
evento onAfterDelete
[code]
$files[] = $this->Ini->path_embutida . “_lib/file/doc/” . [del_arquivo_1];
$files[] = $this->Ini->path_embutida . “_lib/file/doc/” . [del_arquivo_2];
foreach($files as $file) {
if(!is_dir($file)) {
unlink($file);
}
}[/code]
Marque as variáveis globais [del_arquivo_1] e [del_arquivo_2] como Saida.
Perceba que nesse novo código foi alterado o caminho do diretório do arquivo, retirando a / do inicio.
Importante: No select no onBeforeDelete coloquei sua tabela com o nome de assinantes, se não for esse nome substituir.
Esta dando este erro
Parse error: syntax error, unexpected T_VARIABLE in /home/storage/6/8d/86/portalmetodo/public_html/portal/sup_form_assinantes/sup_form_assinantes_apl.php on line 3001
Na linha tem isso:
$this->sc_temp_del_arquivo_1 = $this->rs[0][0]
$this->sc_temp_del_arquivo_2 = $this->rs[0][1]
if (isset($this->sc_temp_del_arquivo_1)) { $_SESSION[‘del_arquivo_1’] = $this->sc_temp_del_arquivo_1;}
if (isset($this->sc_temp_del_arquivo_2)) { $_SESSION[‘del_arquivo_2’] = $this->sc_temp_del_arquivo_2;}
if (isset($this->NM_ajax_flag) && $this->NM_ajax_flag)
Corrigido o problema, tinha esquecido de fechar a linha de comando, famosos ; .
eveno onBeforeDelete
$sql = "SELECT
arquivo_1,
arquivo_2
FROM assinantes
WHERE id = " . {id};
sc_lookup(rs, $sql);
[del_arquivo_1] = {rs[0][0]};
[del_arquivo_2] = {rs[0][1]};
Caro Almeida, você é o cara, gostaria de te agradecer muito e a todos que me ajudaram nesta etapa, muito mesmo pelo apoio.
Você é fenomenal