Neste tópico vamos abordar tudo o que envolve Upload de Arquivos dentro do Latromi.
Sobre o Upload de Arquivos
O Upload de Arquivos é um recurso que permite enviar arquivos do dispositivo do usuário para o servidor, através de um Formulário Dinâmico.
Quando o usuário inclui um arquivo pelo navegador, os seguintes eventos ocorrem até que ele chegue ao destino especificado:
-
Usuário seleciona e envia o arquivo pelo navegador.
-
O arquivo é recebido no servidor, e armazenado em uma “área temporária”.
-
O evento “FileUploaded” será disparado. Além dele, se mais de um arquivo for enviado ao mesmo tempo, o evento “FilesUploaded” será disparado quando todos os envios forem concluídos.
-
Quando a ação Confirmar Uploads for executada em um procedimento, o sistema vai mover o arquivo que está na “área temporária” para o destino configurado.
A seguir, vamos ver como cada destino é configurado
Adicionando um Campo de Upload
Para realizar a implementação do Upload de Arquivos, é necessário adicionar um campo do tipo Upload em um Formulário Dinâmico.
Este Formulário será usado para receber os arquivos anexados pelo usuário.
A aparência deste campo no navegador será essa:
A seguir, vamos conhecer algumas das propriedades dos campos do tipo “Upload”.
Destino do Arquivo
Os arquivos podem ser enviados a 3 opções de Destino:
- Diretório
- FTP
- Banco de Dados
A seguir, veremos detalhadamente cada uma dessas opções.
Diretório
Quando configuramos o destino do arquivo como “Diretório”, como o próprio nome sugere, o arquivo será movido para o diretório informado.
A “área temporária” nesta opção de Destino é uma sub-pasta na pasta raiz do site.
Deve ser informado um diretório do servidor, e não do computador onde Latromi Client está sendo executado. Caso o diretório não exista, o sistema vai tentar criá-lo.
Caminho da pasta dinâmico
É possível utilizar o valor de campos e variáveis do Formulário para compor o caminho do diretório.
Por exemplo, caso tivéssemos um campo chamado “txtCodCliente” com o código do cliente, e quiséssemos colocar o arquivo na pasta C:\Uploads\Clientes/<Cod do Cliente>
, ficaria assim:
Caminho: C:\Uploads\Clientes/{?INPUT txtCodCliente}
Acessando o Arquivo
Caso queira recuperar o arquivo armazenado no servidor, é necessário publicar a pasta onde ele se encontrar no IIS, através de uma Applicação Web ou Diretório Virtual, e então acessar o arquivo através da URL.
FTP
Para enviarmos o arquivo diretamente para o FTP, é necessário informar o endereço e as credenciais de acesso ao mesmo.
Diferentemente das outras opções de destino disponíveis, quando enviamos os arquivos para o FTP, a “área temporária” é no próprio servidor FTP. Por isso é necessário informar o campo “Diretório Temp.”, que será um caminho relativo do servidor.
Caminho da pasta dinâmico
É possível utilizar o valor de campos e variáveis do Formulário para compor o caminho dos diretórios FPT.
Por exemplo, caso tivéssemos um campo chamado “txtCodCliente” com o código do cliente, e quiséssemos colocar o arquivo na pasta /www/Clientes/<Cod do Cliente>
, ficaria assim:
Diretório Dest.: /Clientes/{?INPUT txtCodCliente}
Diretório Temp.: /Temp/Clientes/{?INPUT txtCodCliente}
Acessando o Arquivo
Caso queira recuperar o arquivo armazenado no FTP, é necessário ter acesso a ele através de uma URL de acesso público, sob o protocolo HTTP ou HTTPS.
Banco de Dados
Para gravar o arquivo no banco de dados, é necessário informar um Comando SQL de INSERT
ou UPDATE
, usando as marcações disponíveis no grupo Informações do Arquivo.
Por exemplo, se tivéssemos a tabela a seguir
CREATE TABLE Arquivo
(
Id INT NOT NULL,
Nome VARCHAR(255),
Tamanho INT,
Blob BYTEA, -- PostgreSQL
Hash VARCHAR(40)
);
ALTER TABLE Arquivo ADD CONSTRAINT Pk_Arquivo_Id PRIMARY KEY (Id);
O comando para fazer o INSERT
ficaria assim:
Nome do Arquivo
O nome do arquivo pode ser obtido a qualquer momento no Formulário usando a marcação correspondente ao campo do tipo Upload.
Por exemplo, se o nome do campo de Upload for “uplFotoDoCliente”, ao usarmos a marcação {?INPUT uplFotoDoCliente}
receberemos o nome do arquivo enviado. Se mais de um arquivo for enviado no mesmo campo, serão retornados os nomes de todos os arquivos separados por “|” (pipe).
Modificando o nome do arquivo
Através da propriedade “Nome do Arquivo”, como o próprio nome sugere, o nome do arquivo pode ser alterado.
O preenchimento desta propriedade é opcional, e só terá efeito quando a opção “Alterar nome original do(s) arquivo(s)” for marcada. Se essa opção estiver desmarcada, o nome original do arquivo será utilizado.
Nessa tela, é possível combinar textos fixos (Literal), propriedades do arquivo (Propriedade) e campos do Formulário (Marca) para formar o nome de cada arquivo.