UPLOAD ARQUIVOS E DOWNLOAD

(Jailton) #1

Amigos, queria usar um formulário de Controle para enviar um arquivo txt para o servidor, mas antes dele ser gravado no servidor eu queria acrescentar o código do cliente antes do nome do arquivo e gravar lá no
servidor com o nome novo.

Depois em outra etapa o cliente vai precisar fazer o download deste arquivo,
como posso criar um link em um formulário de controle para que o mesmo
possa ser baixado pelo cliente facilmente?

(rayfcrols) #2

Jailton, quanto ao envio do arquivo tecnicamente é simples bastar criar uma rotina nos eventos “before” renomeando o nome do arquivo fisicamente e sobre o link em formulários ou controle não sei se é possível, mais eu contorno isto criando uma consulta vinculado ao formulário.

(Jailton) #3

Rayfcrols,

Valeu pela sua sugestão + uma dica que o Mestre Harold tinha passado faz tempo e eu tinha anotado, o que tenho mais aqui é anotação e tutoriais que a gente mesmo cria. hehe

Sugiro guardarem este código no futuro pode ser de extrema valia.

Vamos lá ao Código comentado:

// EVENTO ONVALIDATE
$orgcod_x=[Var_orgcod];

// CAMPO TIPO: ARQUIVO DOC
// {ArquivoEnviado}

// PASTA NA SUA PRODUÇÃO ONDE O SC VAI GRAVAR O ARQUIVO
// $this->Ini->path_doc

$de = $this->Ini->path_doc.’/’.{ArquivoEnviado};
$para = $this->Ini->path_doc.’/’.ZeroX($orgcod_x,4).’_’.{ArquivoEnviado};

// APAGA O ARQUIVO ANTERIOR SE TIVER o MESMO NOME
unlink($para);

// RENOMEIA ARQUIVO ENVIADO
rename($de, $para);

** AQUI SUA ROTINA PODE EXECUTAR OS PROCEDIMENTOS DE LEITURA NO ARQUIVO, ETC.

Depois que a rotina terminou de analisar o arquivo já grava um novo e coloca o link para
o usuário fazer o download.

// CAMPO TIPO: LABEL
// {ArquivoCorrigido}

$link_arq=“javascript:nm_mostra_doc(‘0’,’”.$para."’,’’)";

{ArquivoCorrigido}=‘download’;

** Obs: ZeroX{} é uma função da minha biblioteca particular para colocar zeros a esquerda os números.

Essa Rotina estou usando para abrir o arquivo do SPED FISCAL que é obrigatório agora em
muitas empresas, é porque o arquivo do SPED mesmo sendo corrigido pelo programa oficial
ainda tem que fazer alguns ajustes finos para passar no validador.

E ficou SHOW essa rotina esta funcionando perfeitamente, agora.

Um abraço.