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:
- <?php
- /**
- * CustomerFormView
- *
- * @version 1.0
- * @package samples
- * @subpackage tutor
- * @author Pablo Dall'Oglio
- * @copyright Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
- * @license http://www.adianti.com.br/framework-license
- */
- class EquipamentoFormView extends TPage
- {
- private $form; // form
- private $contacts;
- /**
- * Class constructor
- * Creates the page and the registration form
- */
- function __construct()
- {
- parent::__construct();
- // creates the form
- $this->form = new BootstrapFormBuilder('form_equipamento');
- $this->form->setFormTitle('Prontuário Técnico de Equipamento');
- // create the form fields
- $id_equipamento = new THidden('id_equipamento');
- $n_patrimonio = new TEntry('n_patrimonio');
- $tipo_equipamento = new TCombo('tipo_equipamento');
- $fabricante = new TDBCombo('fabricante', 'sistema', 'Fabricante', 'id_fabricante', 'descricao');
- $modelo = new TEntry('modelo');
- $n_serie = new TEntry('n_serie');
- $v_compra = new TEntry('v_compra');
- $n_nota = new TEntry('n_nota');
- $dt_nota = new TDate('dt_nota');
- $ativo = new TCombo('ativo');
- $localizacao = new TDBCombo('localizacao', 'sistema', 'Localizacao', 'descricao', 'descricao');
- $p_manual = new TCombo('p_manual');
- $voltagem = new TCombo('voltagem');
- $p_contrato = new TCombo('p_contrato');
- $empresa = new TEntry('empresa');
- $cpf_cnpj = new TEntry('cpf_cnpj');
- $for_classificado = new TCombo('for_classificado');
- $contato = new TEntry('contato');
- $ins_estadual = new TEntry('ins_estadual');
- $doc_dias = new TCombo('doc_dias');
- $telefone = new TEntry('telefone');
- $inicio_contrato = new TDate('inicio_contrato');
- $fim_contrato = new TDate('fim_contrato');
- $vigencia = new TCombo('vigencia');
- $r_automatica = new TCombo('r_automatica');
- $v_contratual = new TEntry('v_contratual');
- $componetes_equipamento = new TText('componetes_equipamento');
- $dt_ultima_preventiva = new TDate('dt_ultima_preventiva');
- $dt_proxima_preventiva = new TDate('dt_proxima_preventiva');
- $eq_restricoes = new TCombo('eq_restricoes');
- $obs = new TText('obs');
- $dt_cadastro = new TDate('dt_cadastro');
- $mp = new TMultiFile('mp');
- $mc = new TMultiFile('mc');
- //$mp->setAllowedExtensions(['png', 'jpg', 'pdf']);
- $mp->enableFileHandling();
- $mc->enableFileHandling();
- // add the combo options
- $tipo_equipamento->addItems( [ 'US' => 'US', 'RX' => 'RX', 'CT' => 'CT', 'RM' => 'RM', 'MG' => 'MG', 'DO' => 'DO', 'INJ' => 'INJ', 'CR' => 'CR', 'IMP' => 'IMP', 'DRY' => 'DRY' ] );
- $ativo->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $voltagem->addItems(['110' => '110', '220' => '220', '380' => '380']);
- $p_manual->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $p_contrato->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $for_classificado->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $doc_dias->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $vigencia->addItems(['6 Meses' => '6 Meses', '12 Meses' => '12 Meses']);
- $r_automatica->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- $eq_restricoes->addItems(['SIM' => 'SIM', 'NÃO' => 'NÃO']);
- // define some properties for the form fields
- $n_patrimonio->setSize('30%');
- $tipo_equipamento->setSize('30%');
- $fabricante->setSize('100%');
- $modelo->setSize('100%');
- $n_serie->setSize('60%');
- $v_compra->setSize('60%');
- $n_nota->setSize('60%');
- $ativo->setSize('30%');
- $voltagem->setSize('30%');
- $p_manual->setSize('30%');
- $p_contrato->setSize('10%');
- $empresa->setSize('60%');
- $cpf_cnpj->setSize('60%');
- $for_classificado->setSize('20%');
- $contato->setSize('100%');
- $ins_estadual->setSize('60%');
- $doc_dias->setSize('20%');
- $telefone->setSize('60%');
- $inicio_contrato->setSize('40%');
- $fim_contrato->setSize('40%');
- $vigencia->setSize('60%');
- $r_automatica->setSize('50%');
- $v_contratual->setSize('60%');
- $componetes_equipamento->setSize('80%');
- $dt_ultima_preventiva->setSize('80%');
- $dt_proxima_preventiva->setSize('80%');
- $eq_restricoes->setSize('60%');
- $obs->setSize('100%');
- $dt_cadastro->setSize('100%');
- $mp->setSize('50%');
- $mc->setSize('50%');
- $this->form->appendPage('Descrição do equipamento');
- $this->form->addFields( [$id_equipamento] )->style = 'display:none';
- $this->form->addFields( [ new TLabel('Numero do patrimônio:') ], [ $n_patrimonio ], [ new TLabel('Tipo de equipamento:') ], [ $tipo_equipamento ] );
- $this->form->addFields( [ new TLabel('Fabricante:') ], [ $fabricante ], [ new TLabel('Modelo:') ], [ $modelo ] );
- $this->form->addFields( [ new TLabel('Numero de série:') ], [ $n_serie ], [ new TLabel('Valor de compra:') ], [ $v_compra ] );
- $this->form->addFields( [ new TLabel('Numero da nota:') ], [ $n_nota ], [ new TLabel('Data da nota:') ], [ $dt_nota ]);
- $this->form->addFields( [ new TLabel('Ativo:') ], [ $ativo ], [ new TLabel('Voltagem:') ], [ $voltagem ]);
- $this->form->addFields( [ new TLabel('Localização:') ], [ $localizacao ], [ new TLabel('Possui Manual:') ], [ $p_manual ]);
- $this->form->appendPage('Informações Contratuais');
- $this->form->addFields( [ new TLabel('Possui contrato:') ], [ $p_contrato ] );
- $this->form->addFields( [ new TLabel('Empresa:') ], [ $empresa ] );
- $this->form->addFields( [ new TLabel('CNPJ/CPF:') ], [ $cpf_cnpj ], [ new TLabel('Inscrição Estadual:') ], [ $ins_estadual ] );
- $this->form->addFields( [ new TLabel('Fornecedor classificado:') ], [ $for_classificado ], [ new TLabel('Documentação em dias:') ], [ $doc_dias ] );
- $this->form->addFields( [ new TLabel('Contato:') ], [ $contato ], [ new TLabel('Telefone:') ], [ $telefone ] );
- $this->form->addFields( [ new TLabel('Data de inicio de contrato:') ], [ $inicio_contrato ], [ new TLabel('Data de termino de contrato:') ], [ $fim_contrato ] );
- $this->form->addFields( [ new TLabel('Renovação automatica:') ], [ $r_automatica ], [ new TLabel('Tempo de vigncia:') ], [ $vigencia ], [ new TLabel('Valor do contrato:') ], [ $v_contratual ] );
- $this->form->appendPage('Componetes do equipamento');
- $this->form->addFields( [ new TLabel('Descrição de componetes:') ], [ $componetes_equipamento ] );
- $this->form->appendPage('Informações Técnicas');
- $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 ] );
- $this->form->addFields( [ new TLabel('Observações:') ], [ $obs ] );
- $this->form->appendPage('Manutenções preventivas');
- $this->form->addFields( [ new TLabel('Manutenções preventivas:') ], [ $mp ] );
- $this->form->appendPage('Manutenções corretivas');
- $this->form->addFields( [ new TLabel('Manutenções corretivas:') ], [ $mc ] );
- $this->form->addAction( 'Salvar', new TAction([$this, 'onSave']), 'fa:save green' );
- $this->form->addAction( 'Limpar', new TAction([$this, 'onClear']), 'fa:eraser red' );
- $this->form->addActionLink( 'Listar', new TAction(['EquipamentoDataGridView', 'onReload']), 'fa:table blue' );
- // wrap the page content
- $vbox = new TVBox;
- $vbox->style = 'width: 100%';
- //$vbox->add(new TXMLBreadCrumb('menu.xml', 'CustomerDataGridView'));
- $vbox->add($this->form);
- // add the form inside the page
- parent::add($vbox);
- }
- /**
- * method onSave
- * Executed whenever the user clicks at the save button
- */
- public function onSave()
- {
- try
- {
- TTransaction::open('sistema'); // open a transaction
- $this->form->validate(); // validate form data
- $object = new Equipamento; // create an empty object
- $data = $this->form->getData(); // get form data as array
- $object->fromArray( (array) $data); // load the object with data
- $object->store(); // save the object
- TTransaction::close();
- new TMessage('info', 'Dados gravados com sucesso!');
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- $this->form->setData( $this->form->getData() ); // keep form data
- TTransaction::rollback(); // undo all pending operations
- }
- }
- /**
- * method onEdit
- * Edit a record data
- */
- public function onEdit($param){
- $key = $param['key']; // obt�m o par�metro $key
- TTransaction::open('sistema'); // abre a transa��o
- $data = new Equipamento($key); // instancia o Active Record
- $this->form->setData($data); // preenche o form
- TTransaction::close(); // fecha a transa��o
- }
- /**
- * Clear form
- */
- public function onClear($param)
- {
- $this->form->clear();
- }
- }
# 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
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.
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.
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