Salve a tutti,
pensavo che avrei trovato in rete un mare di risposte a questo problema ma o mi sbagliavo oppure cerco nel modo sbagliato!!
Comunque...
sto realizzando un componente abbastanza semplice di archiviazione e visualizzazione dati e tra gli altri dati vorrei inserire una Immagine.
Lo so che ora mi direte che "generalmente non si fa" ma ho volutamente messo l'Immagine in un campo BLOB sul db.
In fase di inserimento sembra funzionare tutto bene.
Prendo i dati dal Form: $data = JRequest::get('post');
eseguo il Bind: $row =& $this->getTable();
if(!$row->bind($data)) {
$this->setError($row->getError());
return false;
}
e salvo: if(!$row->store()) {
$this->setError($row->getError());
return false;
}
Tutti gli altri dati vengono Inseriti e/o Modificati correttamente.
Guardando nel DB dalla console vedo che inserisce qualcosa anche nel campo BLOB.
I dolori arrivano in visualizzazione.
Vedo tutti i campi ma non capisco come visualizzare l'Immagine.
Recupero i Dati dal DB: $sql = 'SELECT * FROM #__NomeTabA a, #__NomeTabB b '
. ' where a.id_A = b.id_B '
. ' and a.id = '. $this->_id;
$this->_db->setQuery($sql);
$this->_data = $this->_db->loadObject();
return $this->_data;
li metto a disposizione del FrontEnd: $this->assignRef('event', $event);
ma nella schermata vedo tutti i campi tranne l'immagine di cui mi compare soltanto il Nome.
Il Campo a FrontEnd in fase di Inserimento è: <td width="100" align="right" class="key">
<label for="immagine">
<?php echo JText::_('Immagine'); ?>:
</label>
</td>
<td>
<input name="immagine" type="file" value="<?php echo $this->event->immagine;?>" >
</td>
Per la visualizzazione ho provato un po di soluzioni che ho trovato in giro ma nessuna pare funzionare.
Quale è il codice giusto per visualizzare l'immagine presa dal campo BLOB?
Devo trattare i qualche maniera il dato prima di mandarlo al FrontEnd?
Non basta scrivere "$this->event->immagine" per riferirsi all'Immagine?
Spero si sia capito bene o male quello che mi serve.
In caso contrario chiedete pure ultieriori info che vi servono.
Grazie,
Alessio.