Upload de Arquivos

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:

  1. Usuário seleciona e envia o arquivo pelo navegador.

  2. O arquivo é recebido no servidor, e armazenado em uma “área temporária”.

  3. 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.

    image

  4. 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.

    image

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.

image

Se você nomear o campo com o prefixo **upl**, ele assumirá o tipo **Upload** automaticamente,

A aparência deste campo no navegador será essa:

image

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.

image

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.

image

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.

image

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.

1 Curtida