Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Problema TMultiFile não carrega imagens apos salvar. Galera os arquivos chegam aparecer ate apos salvar mas quando sai e entra novamente os anexos somem alguem poderia me dar uma luz o codigo abaixo: ...
RR
Problema TMultiFile não carrega imagens apos salvar.  
Galera os arquivos chegam aparecer ate apos salvar mas quando sai e entra novamente os anexos somem alguem poderia me dar uma luz o codigo abaixo:

  1. <?php
  2. /**
  3.  * CustomerFormView
  4.  *
  5.  * @version    1.0
  6.  * @package    samples
  7.  * @subpackage tutor
  8.  * @author     Pablo Dall'Oglio
  9.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  10.  * @license    http://www.adianti.com.br/framework-license
  11.  */
  12. class EquipamentoFormView extends TPage
  13. {
  14.     private $form// form
  15.     private $contacts;
  16.     
  17.     /**
  18.      * Class constructor
  19.      * Creates the page and the registration form
  20.      */
  21.     function __construct()
  22.     {
  23.         parent::__construct();
  24.         
  25.         // creates the form
  26.         $this->form = new BootstrapFormBuilder('form_equipamento');
  27.         $this->form->setFormTitle('Prontuário Técnico de Equipamento');
  28.         
  29.         // create the form fields
  30.         $id_equipamento          = new THidden('id_equipamento');
  31.         $n_patrimonio            = new TEntry('n_patrimonio');
  32.         $tipo_equipamento        = new TCombo('tipo_equipamento');
  33.         $fabricante              = new TDBCombo('fabricante''sistema''Fabricante''id_fabricante''descricao');
  34.         $modelo                  = new TEntry('modelo');
  35.         $n_serie                 = new TEntry('n_serie');
  36.         $v_compra                = new TEntry('v_compra');
  37.         $n_nota                  = new TEntry('n_nota');
  38.         $dt_nota                 = new TDate('dt_nota');
  39.         $ativo                   = new TCombo('ativo');
  40.         $localizacao             = new TDBCombo('localizacao''sistema''Localizacao''descricao''descricao');
  41.         $p_manual                = new TCombo('p_manual');
  42.         $voltagem                = new TCombo('voltagem');
  43.         $p_contrato              = new TCombo('p_contrato');
  44.         $empresa                 = new TEntry('empresa');
  45.         $cpf_cnpj                = new TEntry('cpf_cnpj');
  46.         $for_classificado        = new TCombo('for_classificado');
  47.         $contato                 = new TEntry('contato');
  48.         $ins_estadual            = new TEntry('ins_estadual');
  49.         $doc_dias                = new TCombo('doc_dias');
  50.         $telefone                = new TEntry('telefone');
  51.         $inicio_contrato         = new TDate('inicio_contrato');
  52.         $fim_contrato            = new TDate('fim_contrato');
  53.         $vigencia                = new TCombo('vigencia');
  54.         $r_automatica            = new TCombo('r_automatica');
  55.         $v_contratual            = new TEntry('v_contratual');
  56.         $componetes_equipamento  = new TText('componetes_equipamento');
  57.         $dt_ultima_preventiva    = new TDate('dt_ultima_preventiva');
  58.         $dt_proxima_preventiva   = new TDate('dt_proxima_preventiva');
  59.         $eq_restricoes           = new TCombo('eq_restricoes');
  60.         $obs                     = new TText('obs');
  61.         $dt_cadastro             = new TDate('dt_cadastro');
  62.         $mp                      = new TMultiFile('mp');
  63.         $mc                      = new TMultiFile('mc');
  64.           
  65.              
  66.         //$mp->setAllowedExtensions(['png', 'jpg', 'pdf']);
  67.          
  68.         $mp->enableFileHandling();
  69.         $mc->enableFileHandling();
  70.                        
  71.         // add the combo options
  72.         $tipo_equipamento->addItems( [ 'US' => 'US''RX' => 'RX''CT' => 'CT''RM' => 'RM''MG' => 'MG''DO' => 'DO''INJ' => 'INJ''CR' => 'CR''IMP' => 'IMP''DRY' => 'DRY' ] );
  73.         $ativo->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']);
  74.         $voltagem->addItems(['110' => '110''220' => '220''380' => '380']);
  75.         $p_manual->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']); 
  76.         $p_contrato->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']);
  77.         $for_classificado->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']); 
  78.         $doc_dias->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']);
  79.         $vigencia->addItems(['6 Meses' => '6 Meses''12 Meses' => '12 Meses']);
  80.         $r_automatica->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']);
  81.         $eq_restricoes->addItems(['SIM' => 'SIM''NÃO' => 'NÃO']);
  82.         
  83.         
  84.                 
  85.         // define some properties for the form fields
  86.         $n_patrimonio->setSize('30%');
  87.         $tipo_equipamento->setSize('30%');
  88.         $fabricante->setSize('100%');
  89.         $modelo->setSize('100%');
  90.         $n_serie->setSize('60%');
  91.         $v_compra->setSize('60%');
  92.         $n_nota->setSize('60%');
  93.         $ativo->setSize('30%');
  94.         $voltagem->setSize('30%');
  95.         $p_manual->setSize('30%');
  96.         $p_contrato->setSize('10%');
  97.         $empresa->setSize('60%');              
  98.         $cpf_cnpj->setSize('60%');                
  99.         $for_classificado->setSize('20%');        
  100.         $contato->setSize('100%');                 
  101.         $ins_estadual->setSize('60%');            
  102.         $doc_dias->setSize('20%');                
  103.         $telefone->setSize('60%');                
  104.         $inicio_contrato->setSize('40%');         
  105.         $fim_contrato->setSize('40%');            
  106.         $vigencia->setSize('60%');                
  107.         $r_automatica->setSize('50%');            
  108.         $v_contratual->setSize('60%');            
  109.         $componetes_equipamento->setSize('80%');  
  110.         $dt_ultima_preventiva->setSize('80%');    
  111.         $dt_proxima_preventiva->setSize('80%');   
  112.         $eq_restricoes->setSize('60%');           
  113.         $obs->setSize('100%');                     
  114.         $dt_cadastro->setSize('100%'); 
  115.         $mp->setSize('50%'); 
  116.         $mc->setSize('50%');                    
  117.                
  118.         $this->form->appendPage('Descrição do equipamento');
  119.         
  120.         $this->form->addFields( [$id_equipamento] )->style 'display:none';
  121.         $this->form->addFields( [ new TLabel('Numero do patrimônio:') ],      [ $n_patrimonio ], [ new TLabel('Tipo de equipamento:') ],       [ $tipo_equipamento ] );
  122.         $this->form->addFields( [ new TLabel('Fabricante:') ],       [ $fabricante ], [ new TLabel('Modelo:') ],   [ $modelo ] );
  123.         $this->form->addFields( [ new TLabel('Numero de série:') ],      [ $n_serie ], [ new TLabel('Valor de compra:') ],     [ $v_compra ] );
  124.         $this->form->addFields( [ new TLabel('Numero da nota:') ], [ $n_nota ], [ new TLabel('Data da nota:') ],    [ $dt_nota ]);
  125.         $this->form->addFields( [ new TLabel('Ativo:') ], [ $ativo ], [ new TLabel('Voltagem:') ],    [ $voltagem ]);
  126.         $this->form->addFields( [ new TLabel('Localização:') ],  [ $localizacao ], [ new TLabel('Possui Manual:') ],  [ $p_manual ]);
  127.        
  128.         
  129.         
  130.         $this->form->appendPage('Informações Contratuais');
  131.         
  132.         $this->form->addFields( [ new TLabel('Possui contrato:') ],     [ $p_contrato ] );
  133.         $this->form->addFields( [ new TLabel('Empresa:') ],  [ $empresa ] );
  134.         $this->form->addFields( [ new TLabel('CNPJ/CPF:') ],  [ $cpf_cnpj ], [ new TLabel('Inscrição Estadual:') ],  [ $ins_estadual ] );
  135.         $this->form->addFields( [ new TLabel('Fornecedor classificado:') ],  [ $for_classificado ], [ new TLabel('Documentação em dias:') ],  [ $doc_dias ] );
  136.         $this->form->addFields( [ new TLabel('Contato:') ],  [ $contato ], [ new TLabel('Telefone:') ],  [ $telefone ] );
  137.         $this->form->addFields( [ new TLabel('Data de inicio de contrato:') ],  [ $inicio_contrato ], [ new TLabel('Data de termino de contrato:') ],  [ $fim_contrato ] );
  138.         $this->form->addFields( [ new TLabel('Renovação automatica:') ],  [ $r_automatica ], [ new TLabel('Tempo de vigncia:') ],  [ $vigencia ], [ new TLabel('Valor do contrato:') ],  [ $v_contratual ] );
  139.                 
  140.         $this->form->appendPage('Componetes do equipamento');
  141.                 
  142.         $this->form->addFields( [ new TLabel('Descrição de componetes:') ],     [ $componetes_equipamento ] );
  143.         
  144.         $this->form->appendPage('Informações Técnicas');
  145.         
  146.         $this->form->addFields( [ new TLabel('Data ultima preventiva:') ],     [ $dt_ultima_preventiva ], [ new TLabel('Data proxima preventiva:') ],     [ $dt_proxima_preventiva ], [ new TLabel('Equipamento com retrições:') ],     [ $eq_restricoes ] );
  147.         $this->form->addFields( [ new TLabel('Observações:') ],     [ $obs ] );
  148.         
  149.         $this->form->appendPage('Manutenções preventivas');
  150.         
  151.         $this->form->addFields( [ new TLabel('Manutenções preventivas:') ],     [ $mp ] );
  152.         
  153.         $this->form->appendPage('Manutenções corretivas');
  154.         
  155.         $this->form->addFields( [ new TLabel('Manutenções corretivas:') ],     [ $mc ] );
  156.         
  157.         
  158.         $this->form->addAction'Salvar', new TAction([$this'onSave']), 'fa:save green' );
  159.         $this->form->addAction'Limpar', new TAction([$this'onClear']), 'fa:eraser red' );
  160.         $this->form->addActionLink'Listar', new TAction(['EquipamentoDataGridView''onReload']), 'fa:table blue' );
  161.         
  162.         
  163.         // wrap the page content
  164.         $vbox = new TVBox;
  165.         $vbox->style 'width: 100%';
  166.         //$vbox->add(new TXMLBreadCrumb('menu.xml', 'CustomerDataGridView'));
  167.         $vbox->add($this->form);
  168.         
  169.         // add the form inside the page
  170.         parent::add($vbox);
  171.     }
  172.     
  173.     /**
  174.      * method onSave
  175.      * Executed whenever the user clicks at the save button
  176.      */
  177.     public function onSave()
  178.     {
  179.         try
  180.         {
  181.             TTransaction::open('sistema'); // open a transaction
  182.             $this->form->validate(); // validate form data
  183.             
  184.             $object = new Equipamento;  // create an empty object
  185.             $data $this->form->getData(); // get form data as array
  186.             $object->fromArray( (array) $data); // load the object with data
  187.             $object->store(); // save the object
  188.             
  189.             TTransaction::close();
  190.             new TMessage('info''Dados gravados com sucesso!');
  191.         }
  192.         catch (Exception $e// in case of exception
  193.         {
  194.             new TMessage('error'$e->getMessage()); // shows the exception error message
  195.             $this->form->setData$this->form->getData() ); // keep form data
  196.             TTransaction::rollback(); // undo all pending operations
  197.         }
  198.         
  199.             
  200.     }
  201.     
  202.     /**
  203.      * method onEdit
  204.      * Edit a record data
  205.      */
  206.      public function onEdit($param){
  207.         
  208.         
  209.                 $key $param['key'];  // obt�m o par�metro $key
  210.                 TTransaction::open('sistema'); // abre a transa��o
  211.                 $data = new Equipamento($key); // instancia o Active Record
  212.                 
  213.                 $this->form->setData($data); // preenche o form
  214.                 TTransaction::close(); // fecha a transa��o
  215.        }
  216.     
  217.     /**
  218.      * Clear form
  219.      */
  220.     public function onClear($param)
  221.     {
  222.         $this->form->clear();
  223.         
  224.     }
  225.     
  226.     
  227. }

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


RR


# Nome Tipo Agrupamento (Collation) Atributos Nulo Predefinido Comentários Extra Acções
1 id_equipamentoPrimária int(11) Não None AUTO_INCREMENT Muda Muda Elimina Elimina
Mais Mais
2 n_patrimonio varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
3 tipo_equipamento varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
4 fabricante varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
5 modelo varchar(150) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
6 n_serie varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
7 v_compra decimal(10,0) Sim NULL Muda Muda Elimina Elimina
Mais Mais
8 n_nota varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
9 dt_nota date Sim NULL Muda Muda Elimina Elimina
Mais Mais
10 ativo varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
11 localizacao varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
12 p_manual varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
13 voltagem varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
14 p_contrato varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
15 empresa varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
16 cpf_cnpj varchar(21) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
17 for_classificado varchar(20) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
18 contato varchar(100) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
19 ins_estadual varchar(50) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
20 doc_dias varchar(20) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
21 telefone varchar(20) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
22 inicio_contrato date Sim NULL Muda Muda Elimina Elimina
Mais Mais
23 fim_contrato date Sim NULL Muda Muda Elimina Elimina
Mais Mais
24 vigencia varchar(20) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
25 r_automatica varchar(25) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
26 v_contratual decimal(10,0) Sim NULL Muda Muda Elimina Elimina
Mais Mais
27 componetes_equipamento text utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
28 dt_ultima_preventiva date Sim NULL Muda Muda Elimina Elimina
Mais Mais
29 dt_proxima_preventiva date Sim NULL Muda Muda Elimina Elimina
Mais Mais
30 eq_restricoes varchar(25) utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
31 obs text utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
32 dt_cadastro datetime Sim NULL Muda Muda Elimina Elimina
Mais Mais
33 mp text utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
34 mc text utf8_general_ci Sim NULL Muda Muda Elimina Elimina
Mais Mais
MA

Não entendi qual o seu real problema, Pois sempre quando salva os arquivos saem msm mas ja foram armazenados no banco de dados, você deve mover eles para sua pasta que você deseja e pode mostrar eles depois criando um painel de imagens.
NR

O TFile e TMultifile fazem o upload temporário para a pasta tmp do sistema. Dentro da função onSave tem que adicionar os comandos para mover os arquivos para outro diretório e salvar esse caminho no banco de dados.

Veja esse exemplo do tutor:
adianti.com.br/framework_files/tutor/index.php?class=ProductForm&

Para facilitar o tratamento dos arquivos temos as funções saveFile e saveFiles da trait AdiantiFileSaveTrait. A primeira função é usada com o TFile e a segunda com o TMultifile.
MA

Heather Rosado, use rest services to give you a freedom in design. Or you can create a new template, but it will be more laborious