RC
Preview de Imagens
Boa noite, comunidade.
Utilizei o exemplo do ProductForm (www.adianti.com.br/framework_files/tutor/index.php?class=ProductForm) para fazer o preview da imagem antes de salvar.
Entretanto, a imagem não aparece para visualização.
Alguém consegue identificar qual o problema?
Utilizei o exemplo do ProductForm (www.adianti.com.br/framework_files/tutor/index.php?class=ProductForm) para fazer o preview da imagem antes de salvar.
Entretanto, a imagem não aparece para visualização.
Alguém consegue identificar qual o problema?
<?php/** * SocioForm Form * @author <your name here> */class SocioForm extends TPage{ protected $form; // form private $frame; /** * Form constructor * @param $param Request */ public function __construct( $param ) { parent::__construct(); // creates the form $this->form = new TForm('form_Socio'); $this->form->class = 'tform'; // change CSS class //$this->form = new BootstrapFormWrapper($this->form); $this->form->style = 'display: table;width:100%'; // change style $notebook1 = new BootstrapNotebookWrapper( new TNotebook(500, 460) ); $this->form->add($notebook1); // create the form fields $id = new TEntry('id'); $id->setEditable(FALSE); $id->setSize(100); $nome = new TEntry('nome'); $nome->setSize('100%'); $nome->addValidation('nome', new TRequiredValidator); $cpf = new TEntry('cpf'); $cpf->addValidation('cpf', new TCPFValidator); $cpf->setMask('999.999.999-99'); $cpf->setSize(200); $rg = new TEntry('rg'); $rg->setSize(200); $data_nascimento = new TDate('data_nascimento'); $data_nascimento->setMask('dd/mm/yyyy'); $data_nascimento->setSize(178); $cadastrado = new TDate('cadastrado'); $cadastrado->setEditable(FALSE); $cadastrado->setSize(200); $pai = new TEntry('pai'); $pai->setSize('100%'); $mae = new TEntry('mae'); $mae->setSize('100%'); $ativo = new TEntry('ativo'); $ativo->setEditable(FALSE); $ativo->setSize(200); $sexo_id = new TDBRadioGroup('sexo_id', 'sistema', 'Sexo', 'id', 'descricao'); $sexo_id->setLayout('horizontal'); $estado_civil_id = new TDBCombo('estado_civil_id', 'sistema', 'EstadoCivil', 'id', 'descricao'); $estado_civil_id->setSize(200); $cidade_nascimento_id = new
">TDBSeekButton('cidade_nascimento_id', 'sistema', 'form_Socio', 'Cidade', 'nome', 'cidade_nascimento_id', 'cidade_nascimento_nome'); $cidade_nascimento_id->setSize(30); $cidade_nascimento_nome = new TEntry('cidade_nascimento_nome'); $cidade_nascimento_nome->setEditable(FALSE); $cidade_nascimento_nome->setSize(146); $email = new TEntry('email'); $email->addValidation('email', new TEmailValidator); $email->setSize('100%'); $matricula = new TEntry('matricula'); $matricula->addValidation('matricula', new TNumericValidator); $matricula->setSize(200); $ade = new TEntry('ade'); $ade->setSize(200); $data_admissao = new TDate('data_admissao'); $data_admissao->setMask('dd/mm/yyyy'); $data_admissao->setSize(178); $cargo_funcao_id = new TDBCombo('cargo_funcao_id', 'sistema', 'CargoFuncao', 'id', 'descricao'); $cargo_funcao_id->setSize(200); $departamento_id = new
">TDBSeekButton('departamento_id', 'sistema', 'form_Socio', 'Departamento', 'sigla', 'departamento_id', 'departamento_sigla'); $departamento_id->setSize(30); $departamento_sigla = new TEntry('departamento_sigla'); $departamento_sigla->setEditable(FALSE); $departamento_sigla->setSize(146); //prepara a tabela de dados pessoais $pessoais = new TTable; //$pessoais->border = '1'; $row = $pessoais->addRow()->addCell(new TLabel(''))->width = 80; $row = $pessoais->addRow(); $row->addCell(new TLabel('Id')); $row->addCell($id)->colspan = 3; $row = $pessoais->addRow(); $row->addCell(new TLabel('Nome')); $row->addCell($nome)->colspan = 3; $row = $pessoais->addRow(); $row->addCell(new TLabel('Mãe')); $row->addCell($mae)->colspan = 3; $row = $pessoais->addRow(); $row->addCell(new TLabel('Pai')); $row->addCell($pai)->colspan = 3; $row = $pessoais->addRow(); $row->addCell(new TLabel('E-mail')); $row->addCell($email)->colspan = 3; $pessoais->addRowSet( new TLabel('')); $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell(new TLabel('CPF'))->width = 250; $row->addCell(new TLabel('Identidade'))->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell($cpf); $row->addCell($rg)->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell(new TLabel('Data de Nascimento')); $row->addCell(new TLabel('Cidade de Nascimento'))->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell($data_nascimento); $row->addCell($cidade_nascimento_id); $row->addCell($cidade_nascimento_nome); $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell(new TLabel('Estado Civil')); $row->addCell(new TLabel('Sexo'))->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell($estado_civil_id); $row->addCell($sexo_id)->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell(new TLabel('Situacao')); $row->addCell(new TLabel('Data de Cadastro'))->colspan = 2; $row = $pessoais->addRow(); $row->addCell(new TLabel('')); $row->addCell($ativo); $row->addCell($cadastrado)->colspan = 2; //prepara a tabela de dados profissionais $profissional = new TTable; //$profissional->border = '1'; $profissional->addRowSet( new TLabel('')); $row = $profissional->addRow(); $row->addCell(new TLabel('Matrícula'))->colspan = 2; $row->addCell(new TLabel('Data de Admissão')); $row = $profissional->addRow(); $row->addCell($matricula)->colspan = 2; $row->addCell($data_admissao); $row = $profissional->addRow(); $row->addCell(new TLabel('ADE'))->colspan = 2; $row->addCell(new TLabel('Cargo/Função')); $row = $profissional->addRow(); $row->addCell($ade)->colspan = 2; $row->addCell($cargo_funcao_id); $row = $profissional->addRow(); $row->addCell(new TLabel('Lotação'))->colspan = 2; $row = $profissional->addRow(); $row->addCell($departamento_id); $row->addCell($departamento_sigla)->width = 200; //prepara a tabela de endereco $endereco_id = new TEntry('endereco_id'); $endereco = new TTable; //$endereco->border = '1'; $endereco->addRowSet( new TLabel('')); $cep = new TEntry('cep'); $cep->setMask('99.999-999'); $cep->setSize(100); $busca_cep = new TAction( array($this, 'onBuscaCEP') ); $cep->setExitAction($busca_cep); $estado_id = new TEntry('estado_id'); $estado_id->setEditable(FALSE); $estado_id->setSize(200); $cidade_id = new TEntry('cidade_id'); $cidade_id->setEditable(FALSE); $cidade_id->setSize(200); $bairro_id = new TEntry('bairro_id'); $bairro_id->setEditable(FALSE); $bairro_id->setSize(200); $logradouro_id = new TEntry('logradouro_id'); $logradouro_id->setSize(450); $numero = new TEntry('numero'); $numero->setSize(200); $complemento = new TEntry('complemento'); $complemento->setSize(200); $ponto_referencia = new TText('ponto_referencia'); $ponto_referencia->setSize(450, 70); $row = $endereco->addRow(); $row->addCell(new TLabel('CEP'))->colspan = 2; $row->addCell(new TLabel('Estado')); $row = $endereco->addRow(); $row->addCell($cep)->colspan = 2; $row->addCell($estado_id); $row = $endereco->addRow(); $row->addCell(new TLabel('Cidade'))->colspan = 2; $row->addCell(new TLabel('Bairro')); $row = $endereco->addRow(); $row->addCell($cidade_id)->colspan = 2; $row->addCell($bairro_id); $row = $endereco->addRow(); $row->addCell(new TLabel('Logradouro'))->colspan = 3; $row = $endereco->addRow(); $row->addCell($logradouro_id)->colspan = 3; $row = $endereco->addRow(); $row->addCell(new TLabel('Número'))->colspan = 2; $row->addCell(new TLabel('Complemento')); $row = $endereco->addRow(); $row->addCell($numero)->colspan = 2; $row->addCell($complemento); $row = $endereco->addRow(); $row->addCell(new TLabel('Ponto de Referência'))->colspan = 3; $row = $endereco->addRow(); $cell = $row->addCell(''); $cell->width = 500; $cell->colspan = 3; $cell->add($ponto_referencia); //montando o TMultiField de telefones $telefones = new TMultiField('telefones'); $telefones->setHeight(160); $telefones->setOrientation('horizontal'); $ddd = new TEntry('ddd'); $ddd->setSize(70); $ddd->setMaxLength(2); $numero = new TEntry('numero'); $numero->setSize(150); $telefones->addField('ddd', 'DDD', $ddd, 70); $telefones->addField('numero', 'Numero', $numero, 150, TRUE); //$operadora_id = new TDBCombo('operadora_id', 'sistema', 'Operadora', 'id', 'nome'); //$operadora_id->setLayout('horizontal'); $operadora = new TComboCombined('operadora_id', 'operadora_nome'); $operadora->setSize(150); try { TTransaction::open('sistema'); $items = Operadora::getObjects(); $array = []; foreach ($items as $item) { $array[$item->id] = $item->nome; } $operadora->addItems( $array ); $telefones->addField('operadora', 'Operadora', $operadora, 174); TTransaction::close(); } catch (Exception $e) { new TMessage('error', $e->getMessage()); } //prepara a tabela de foto $table_foto = new TTable; //$table_foto->border = '1'; $table_foto->addRowSet( new TLabel('')); $foto = new TFile('foto'); $foto->setSize(350); // complete upload action $foto->setCompleteAction(new TAction(array($this, 'onComplete'))); $table_foto->addRowSet(new TLabel('Selecione a Foto do Sócio')); $table_foto->addRowSet($foto); $this->frame = new TElement('div'); $this->frame->id = 'photo_frame'; $this->frame->style = 'width:400px; height:auto; min-height:200px; border:1px solid gray; padding:4px;'; $table_foto->addRowSet($this->frame); //montando o TMultiField de dependentes $dependentes = new TMultiField('dependentes'); $dependentes->setHeight(200); //$dependentes->setOrientation('horizontal'); $dependente_nome = new TEntry('dependente_nome'); $dependente_nome->setSize(350); $dependente_cpf = new TEntry('dependente_cpf'); $dependente_cpf->addValidation('dependente_cpf', new TCPFValidator); $dependente_cpf->setMask('999.999.999-99'); $dependente_cpf->setSize(200); $dependente_rg = new TEntry('dependente_rg'); $dependente_rg->setSize(200); $dependente_data_nascimento = new TDate('dependente_data_nascimento'); $dependente_data_nascimento->setMask('dd/mm/yyyy'); $dependente_data_nascimento->setSize(178); $dependentes->addField('dependente_nome', 'Nome', $dependente_nome, 300, TRUE); $dependentes->addField('dependente_data_nascimento', 'Data de Nascimento', $dependente_data_nascimento, 80, TRUE); $dependentes->addField('dependente_cpf', 'CPF', $dependente_cpf, 120); $dependentes->addField('dependente_rg', 'Identidade', $dependente_rg, 150); $parentesco = new TComboCombined('parentesco_id', 'parentesco_nome'); $parentesco->setSize(120); try { TTransaction::open('sistema'); $items = Parentesco::getObjects(); $array = []; foreach ($items as $item) { $array[$item->id] = $item->descricao; } $parentesco->addItems( $array ); $dependentes->addField('parentesco', 'Parentesco', $parentesco, 174); TTransaction::close(); } catch (Exception $e) { new TMessage('error', $e->getMessage()); } $notebook1->appendPage('Dados Pessoais', $pessoais); $notebook1->appendPage('Dados Profissionais', $profissional); $notebook1->appendPage('Endereço', $endereco); $notebook1->appendPage('Telefones', $telefones); $notebook1->appendPage('Foto', $table_foto); $notebook1->appendPage('Dependentes', $dependentes); // create the form actions /* $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o'); $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onClear')), 'bs:plus-sign green'); */ $button = TButton::create('save', array($this, 'onSave'), 'Save', 'fa:save'); $this->form->setFields( array($id, $nome, $cpf, $rg, $data_nascimento, $cadastrado, $pai, $mae, $ativo, $sexo_id, $estado_civil_id, $cidade_nascimento_id, $cidade_nascimento_nome, $email, $matricula, $ade, $data_admissao, $foto, $departamento_id, $cargo_funcao_id, $endereco_id, $telefones, $cep, $estado_id, $cidade_id, $bairro_id, $logradouro_id, $numero, $complemento, $ponto_referencia) ); $this->form->addField($button); $buttons_box = new TVBox; $buttons_box->add($button); // add a row for the form action $botoes = new TTable; $botoes->border = '1'; $row = $botoes->addRow(); $row->class = 'tformaction'; // CSS class $row->addCell($buttons_box)->colspan = 2; // vertical box container $container = new TVBox; $container->style = 'width: 90%'; // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $container->add(TPanelGroup::pack('Cadastro de Sócio', $this->form)); parent::add($container); parent::add($botoes); /* $botoes = new TTable; $botoes->width = '90%'; //$botoes->border = '1'; $row = $botoes->addRow(); $cell = $row->addCell($button); $cell->class = 'formaction'; parent::add($botoes);*/ } /** * On complete upload */ public static function onComplete($param) { new TMessage('info', 'Carregamento Completo: '.$param['foto']); // refresh photo_frame TScript::create("$('#photo_frame').html('')"); TScript::create("$('#photo_frame').append(\\"<img style='width:100%' src='tmp/{$param['foto']}'>\\");"); } /** * method onBuscaCEP($param) * Executado quando sair do campo $cep * Busca o endereco conforme o cep informado, para preencher os demais campos do endereco */ public static function onBuscaCEP($param) { //$obj = new StdClass; $obj = $this->form->getData('Endereco'); //$data = new PCepProgs($param['cep']); //$data = new PCepProgs('51350250');print_r($obj);die; $obj->logradouro = $data->getRua(); $obj->cidade = $data->getCidade(); $obj->bairro = $data->getBairro();; $obj->estado_id = $data->getUf();; //TForm::sendData('form_Clientes', $obj); $this->form->setData($obj); } /** * Save form data * @param $param Request */ public function onSave( $param ) { try { TTransaction::open('sistema'); // open a transaction /** // Enable Debug logger for SQL operations inside the transaction TTransaction::setLogger(new TLoggerSTD); // standard output TTransaction::setLogger(new TLoggerTXT('log.txt')); // file **/ $this->form->validate(); // validate form data $object = new Socio; // 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 // get the generated id $data->id = $object->id; $this->form->setData($data); // fill form data TTransaction::close(); // close the transaction new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); } 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 } } /** * Clear form data * @param $param Request */ public function onClear( $param ) { $this->form->clear(); } /** * Load object to form data * @param $param Request */ public function onEdit( $param ) { try { if (isset($param['key'])) { $key = $param['key']; // get the parameter $key TTransaction::open('sistema'); // open a transaction $object = new Socio($key); // instantiates the Active Record $this->form->setData($object); // fill the form TTransaction::close(); // close the transaction $image = new TImage($object->foto); $image->style = 'width: 100%'; $this->frame->add( $image ); } else { $this->form->clear(); } } catch (Exception $e) // in case of exception { new TMessage('error', $e->getMessage()); // shows the exception error message TTransaction::rollback(); // undo all pending operations } }}?>
Apos o upload a imagem foi transferida para a pasta tmp ?
O arquivo foi transferido com sucesso para a pasta tmp.
Inspeciona o caminho da imagem para ver se ficou o src='tmp/2.jpg' , ou seja, se o caminho ficou certinho.
Bom dia Ricardo Camara!
testei com a seguinte alteração e deu ok