Lançado Adianti Framework 7.6!
Clique aqui para saber mais
TFile Caracteristicas Olá pessoal, Tem alguma forma no adianti para eu pegar os dados do arquivo e gravar em uma variável: $idArquivo = new TEntry('idArquivo'); $arquivo = new TFile('arquivo'); $idConvenio = new TEntry('idConvenio'); $datainclusao = new TDateTime('datainclusao'); Por exemplo: eu quero pegar o nome do arquivo que esta na variaável arquivo e gravar ele na variá...
FS
TFile Caracteristicas  
Olá pessoal,

Tem alguma forma no adianti para eu pegar os dados do arquivo e gravar em uma variável:
$idArquivo = new TEntry('idArquivo');
$arquivo = new TFile('arquivo');
$idConvenio = new TEntry('idConvenio');
$datainclusao = new TDateTime('datainclusao');
Por exemplo: eu quero pegar o nome do arquivo que esta na variaável arquivo e gravar ele na variável $idConvenio é possível fazer isso.

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (18)


MG

Fernando
É preciso entender o que exatamente você precisa.
Quando é feito um upload pelo Adianti, os dados do arquivo, assim como em qualquer outro script PHP poder ser acessado através de alguns métodos.
O arquivo é enviado da forma que é selecionado (nome e tipo).
Você pode acessá-lo através da variável $arquvo.
Sugiro usar o var_dump($arquivo) para que você possa ver tudo que vem junto com o arquivo.
Aí você trabalha da forma precisar.
FS

a idéia é isso mesmo, quero pegar as informações de um arquivo upado, vou tentar aqui qualquer coisa eu aviso ok.
FS

Não estou encontrando nada de como usar o var_dump, alguém pode me ajudar?
MG

Fernando
No onSave após o $data = $this->form->getData();

use
var_dump($data);
ou
var_dump($data->arquivo).

Ele irá imprimir na tela o conteúdo da variável passada como parâmetro.
FS

E depois para eu set a informação na variavel idConvenios para que seja armazenado do BD?
MG

Fernando

Atribua o valor do atributo da variável que você quer.

Mas existe um conflito nesta variável. Quando vejo "idConvenios", eu acredito que deva ser atribuído um ID (int) e não nomes ou algo parecido.

Explique melhor o problema para que possamos te ajudar.

- Qual é o tipo da variável idConvenios?
- O que você precisa setar exatamente em idConvenios que venha de uma variável do tipo "file"?




FS

Sim, isto mesmo, o que eu vou falar é colocar um laço ou seja uma condição para que ele analise conforme o conteudo da variável
colocar um ID para vincular na base.
MG

Fernando

Acho que ainda não entendi.
Um "File" armazena característica de uma único arquivo.
Onde entre o laço?

Novamente não ficou claro o problema!

Pode explicar a necessidade?
Vai receber vários arquivos?


FS

Por exemplo: se a informação da variavel for igual a "3273-EG3273000007" quero que ele grave no banco de dados pela variável idConvenios
o id do relacioamento correpondente a informação 3273-EG3273000007 ou seja, se a informação for está 3273-EG3273000007 ele tem que gravar no banco pelo idConvenio ó código 7.
MG

Fernando
Quando você usa TFile, ao clicar em enviar o arquivo é transferido para o diretório tmp da raiz do projeto.
Você consegue acessá-lo através do id criado no form.

Claro que existem mais conceitos a serem aplicados e com certeza vc não vai comparar a string inteira para saber se é o não que precisa, mas segue um exemplo básico de como pegar os dados de um TFile. Lembrando que o nome do arquivo é composto também pela sua extensão.


  1. <?php
  2.     public function __construct()
  3.     {
  4.         $file = new TFile('arquivo');
  5.     }
  6.     public function onSave($param)
  7.     {
  8.         try {
  9.             $data $this->form->getData();
  10.             // arquivo
  11.             if ($data->arquivo == '3327') {
  12.                 $data->idConvenios 7;
  13.             }
  14.         ....
  15.         } catch {}
  16.     }
  17.    
  18. ?>
FS

$data = $this->form->getData(); // get form data as array
if ($data->arquivo == '3273-EG327300001120200624.CNV'){
$data->idConvenios = 11;
}
Fiz da forma como relatou porém da um erro com se ele não esta armazenando na variável idConvenios.
Erro: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'idConvenio' cannot be null
FS

Achei o problema, desculpe o código é este mesmo que vc me passou, muito obrigado deu certo aqui.
FS

Abaixo o código da forma que eu esta precisando, onde eu usei o substr para pegar somente a parte que eu preciso do arquivo e depois
fazer uma verificação.
$data->arquivo = substr($data->arquivo,0,17);
if ($data->arquivo == '3273-EG3273000011' ){
$data->idConvenio = 10;
}
MG

Fernando
Que bom que deu certo!
Os arquivos tem sempre o mesmo nome?
FS

Eles irão mudar somente o final que corresponde a agência,
mais a quantidade de caracteres sempre será a mesma.
MG

Fernando
Vai funcionar enquanto o número de caracteres forem os mesmo!
Sucesso.
FS

Sim, mais sempre será padrão, por isso os zeros a esquerda.
Mais muito obrigado mesmo.
MG

Opa. No que puder ajudar, estou à disposição.
Sucesso!