Imagens no formulário Gostaria de saber como fazer para mostra a imagem selecionada com o objeto TFile e como mostrar a imagem quando for atualização. Comprei o livro, tentei de várias formas, mas não consegui. Se puder ajudar agradeço....
FV
Imagens no formulário  
Fechado
Gostaria de saber como fazer para mostra a imagem selecionada com o objeto TFile e como mostrar a imagem quando for atualização.
Comprei o livro, tentei de várias formas, mas não consegui. Se puder ajudar agradeço.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (8)


GF

Olá Fagner. Isso é bem tranquilo. Para aparecer a imagem você pode salvar, após o upload da mesma, um apontamento para essa imagem. Exemplo:

<?php//Carrega o objeto$obj = new Objeto(1);//Instancia o objeto TImage//Sendo que o location é o caminho para a imagem $img = new TImage($obj->location);?>


Nesse tipo de formulário, deixo o upload de fotos como optativo, caso o usuário não submeta arquivo com fotos eu faço apontar para uma imagem indicando sem foto.

Valeu?
GR

estou com duvidas nisso também,

<?php/** * classe TImage * classe para exibição de imagens */class TImage extends TElement{    private $source; // localização da imagem        /**     * método construtor     * instancia objeto TImage     * @param $source = localização da imagem     */    public function __construct($source)    {        parent::__construct('img');                // atribui a localização da imagem        $this->src = $source;        $this->border = 0;    }}</code>



ou no ProdutosList.class

seu livro é uns dos melhores que já eu li, parabéns.
valeu
LJ

fiz um codigo bem simples, só que só da erro:

Erro: Argument 1 passed to TForm::addField must implement interface IWidget, instance of TImage given, called in C:siterenomearlibadiantiwidgetwebformTForm.class.php on line 196

<?php/** * ProductForm Registration * * @version    1.0 * @package    samples * @subpackage library * @author     Pablo DallOglio * @copyright  Copyright (c) 2006-2011 Adianti Solutions Ltd. (http://www.adianti.com.br) * @license    http://www.adianti.com.br/framework-license */class ProductForm extends TPage{    private $form; // form    /**     * Class constructor     * Creates the page and the registration form     */    function __construct()    {        parent::__construct();                // creates the form        $this->form = new TForm('form_Product');        // creates a table        $table = new TTable;        $table_buttons = new TTable;                 // add the table inside the form        $this->form->add($table);                  // create the form fields        $id                     = new TEntry('id');        $name                   = new TEntry('name');        $image            = new TImage('image');                     $name->setSize(200);        $row=$table->addRow();        $row->addCell(new TLabel('Id:'));        $cell=$row->addCell($id);        $cell->colspan=2;        // add a row for the field nome        $row=$table->addRow();        $row->addCell(new TLabel('Nome:'));        $cell=$row->addCell($name);        $cell->colspan=2;               // add a row for the field imagem        $row=$table->addRow();        $row->addCell(new TLabel('Imagem:'));        $cell=$row->addCell($image);    $cell->colspan=2;                    // create an action button (go to list)        $goto_button=new TButton('list');        // define the button action        $goto_button->setAction(new TAction(array('ProductDataGridView', 'onReload')), 'Listagem');        $goto_button->setImage('ico_datagrid.gif');                // add a row for the form action        $row=$table_buttons->addRow();        $row->addCell($goto_button);                // add a row for the form action        $row=$table->addRow();        $cell=$row->addCell($table_buttons);        $cell->colspan=3;        // define wich are the form fields        $this->form->setFields(array($id,$name,$image,$goto_button));        // add the form to the page        parent::add($this->form);    }     /**     * method onEdit()     * Executed whenever the user clicks at the edit button da datagrid     */    function onEdit($param)    {        try        {            if (isset($param['key']))            {                // get the parameter $key                $key=$param['key'];                // open a transaction with database 'fotos'                TTransaction::open('fotos');                // instantiates object Book                $object = new Product($key);                // fill the form with the active record data                $this->form->setData($object);                TTransaction::close();            }            else            {                $this->form->clear();            }        }        catch (Exception $e) // in case of exception        {            // shows the exception error message            new TMessage('error', '<b>Error</b> ' . $e->getMessage());            // undo all pending operations            TTransaction::rollback();        }    }}?>


PD

Oi pessoal,

A imagem (TImage) não é um componente de formulário, por isso ela não implementa a interface IWidget. Para fazer upload de imagem, recomendo usar o TFile, que inclusive está passando por uma grande reformulação (melhorias) para a próxima versão. Para exibir a imagem, você pode usar a TImage, mas não deve passar no setFields().

A exceção está sendo gerada pelo setFields(), que determina quais campos serão passados no POST do formulário ;-)

abraço,
Pablo
FM

Beleza, então como eu carrego a imagem ?
PD

Flavio,

Aguarde mais uns dias. Melhoramos o exempo do tutor (ProductForm) para demonstrar como fazer isso.
Sairá junto com a versão 3.0.0

Att
FM

Sério que ja vai sair a versão 3.0 ? vem muita novidades ?
PD

Várias novidades.
Em até 15 dias espero liberar o release.

Abraços!