(RESOLVIDO) Problemas com campo upload de arquivo

Olá amigos,

Tenho um formulário do tipo grid em que o usuário inclui registros e um dos campos é de upload de arquivos.

Está funcionando a inclusão, porém estou tendo dois problemas:
1º - Ao excluir um registro do formulário, o arquivo que foi enviado para o servidor não é excluído junto com o registro do banco.
2º - Ao tentar fazer upload de arquivos em que o nome contenha acentos, “ç”, etc, dá erro e o arquivo não é anexado.

Alguém sabe como resolver esses problemas?

Boa noite,

Reportei este problema para nossa equipe de bugs.

att,
Bernhard Bernsmann

Bom dia Guto,

Me lembrei que o problema da acentuação, cedilha no nome do arquivo pode dar problema dependendo do Charset utilizado no projeto.

Qual charset o Sr. está utilizando no projeto?

Em relação ao problema de remover arquivos enviados após excluir um determinado registro, o feedback que obtiive é que o SC nunca deletou o documento ou imagem do servidor. É necessário que seja criado uma rotina por parte do usuário para varrer arquivos e deletá-los. Isso porque em alguns casos, os usuários preferem manter arquivos antigos mesmo que os registros sejam deletados.

att,
Bernhard Bernsmann

Quanto a deleção já imaginava isso…

O charset é o portuguese (ISO-8859-1)

Aguardo resposta.

Guto nem aguarde nada, faça uma função simples e implemente no seu OnBeforeDelete e exclua o arquivo, isso aí não será implementado na V6, e acredito que nem a V7 virá com essa opção.

Se for pedir muito…terias um modelo de como implementar isso, por favor!

Dois tópicos sobre o assunto, acho que com eles vc vai entender o que precisa ser feito, se não entender posta de novo!!!
http://www.netmake.com.br/forum/index.php/topic,4894.msg20496.html#msg20496
http://www.netmake.com.br/forum/index.php/topic,565.msg6721.html#msg6721

Lendo os tópicos que você me recomendou…

Fiz essa sugestão de código em onAfterDelete:

unlink ($this->Ini->path_doc."/".{nome_do_campo});

Porém, deu erro, é como se o caminho não estivesse correto.

É pra colocar path_doc ou o caminho do diretório completo? Poderia me orientar por favor?

O erro apresentado foi o seguinte:

unlink(/var/www/pasta1/semear/sistema/_lib/file/doc//var/www/pasta1/semear/sistema/_lib/tmp/sc_9de64249_declaração_queila_residencia.odt): No such file or directory
Script: /var/www/pasta1/semear/sistema/form_anexos_projeto/form_anexos_projeto_apl.php (4247)

Também fiz com os seguinte código:

$arquivo = $_SESSION['scriptcase']['form_anexos_projeto']['glo_nm_path_doc']."/".{arquivo}; unlink ($this->Ini->root.$arquivo);

e deu o mesmo erro.

Estou com o mesmo problema teve solução, poderia postar por favor.

Ainda não encontrei solução… to desconfiando de permissão no servidor, mas ainda não testei, to tentando resolver outros problemas.

Ao publicar o sistema na web funcionou certinho não sei por que.

Muito obrigado a todos

No ambiente de desenvolvimento o scriptcase faz o upload normalmente dentro de /scriptcase/file/ ou seja totalmente fora da sua aplicação, isso porque o path de documentos ou imagens é definido globalmente para todas as aplicações que estão dentro do seu repositório. Ao publicar o path (caminho) de upload é definido para o caminho padrão da sua app, então consequentemente vai funcionar.

Afinal o código

unlink ($this->Ini->path_doc."/".{arquivo});

Está certo?

E esse também?

$arquivo = $_SESSION['scriptcase']['form_anexos_projeto']['glo_nm_path_doc']."/".{arquivo}; unlink ($this->Ini->root.$arquivo);

O nome do campo no meu form é “arquivo”.

Se vocês me afirmarem que usam uma das duas formas e funciona para excluir o arquivo do servidor após a exclusão, vou verificar se é alguma configuração/permissão no servidor.

Obrigado pela atenção

Funciona eu tenho testado e aprovado:

unlink ($this->Ini->path_doc."/".{arquivo});

Obrigado pela ajuda de todos. No meu caso tinha um adicional, na configuração do campo de upload eu tinha configurado para criar um subdiretório com o nome do id_projeto, ou seja, “/{id_projetos}”.

Então não tava funcionando por causa disso. No caso o código ficou assim:

unlink ($this->Ini->path_doc."/".{id_projetos}."/".{arquivo});

Obrigado a todos pela atenção.