Em um sistema feito no SC6 eu tinha alguns algorítimos que manipulavam o nome do arquivo que o usuário inseria em um campo do tipo “documento banco de dados”, como por exemplo, retirar caracteres acentuados, etc.
O formulário funciona, ou seja, no evento onBeforeUpdate, o algorítimo manipulava o nome do arquivo, alterando conforme eu tinha definido.
Problema inicial: O problema enfrentado na verdade só era quando dois ou mais usuários realizam upload de arquivos com o mesmo nome, o sistema acabava trocando os arquivos e inserindo para usuários errados.
Para resolver esse problema, estou desenvolvendo uma versão nova do mesmo sistema já versão SC8. O que eu fiz foi um algoritímo para que o sistema mesmo coloque um nome para o arquivo que o usuário está enviando.
em onBeforeUpdate eu coloquei o seguinte códifgo:
if (!empty({b_arquivo_1})) {
{nm_arquivo_1} = [glo_id_proponente]."-".[usr_login]."-".date("Y-m-d_H:i:s");
}
O algorítimo checa se o campo {b_arquivo_1} está não vazio, ou seja, o usuário realizou um upload. Em seguida, altera o campo que guarda o nome do arquivo {nm_arquivo_1} para o conteúdo concatenando a variável global [glo_id_proponente] com a variável global do usuário logado [usr_login] e a data atual.
Até ai tudo bem, resolvido o problema de gravar arquivos trocados quando mais de um usuário enviar um arquivo com o mesmo nome ao mesmo tempo (o que me acontece muito, pois meu sistema opera as vezes com 300 usuário logados enviando arquivos ao mesmo tempo). Lembrando que isso é ainda uma suposição, pois acompanhando pelo log do sistema, identifiquei que há a troca de arquivos quando os usuários enviavam arquivos com o mesmo nome.
No SC6 quando manipulava o nome do arquivo, alterando-o, excluindo espaços, ç, acentos, o sistema gerava o nome novo com a extensão respectiva, de acordo com o tipo (zip, rar, etc).
Problema novo: No SC8, realizando o procedimento descrito no algorítimo em que o sistema mesmo gera o nome do arquivo, o SC está gravando o arquivo no banco de dados, alterando o nome do arquivo, entretanto, não está gerando a extensão do arquivo que o usuário enviou (doc, jpg, pdf, zip, etc).
Alguém poderia ajudar a solucionar esse mistério?