file uploads in 1.6

40 views
Skip to first unread message

Nacho

unread,
Mar 10, 2011, 1:06:31 PM3/10/11
to Joomla! General Development
Hi again,

Im trying to upload a file, in a form defined in xml using JForm, but
the file seems not to be present in JRequest. I'm following this
example http://docs.joomla.org/How_to_use_the_filesystem_package#Upload_-_Full_Sample,
but I know it's for 1.5.

What I'm doing is trying to save a company's logo, which comes in the
same form as the main data. My controller extends JControllerForm, and
I've overloaded postSaveHook... ¿should file data be there at that
point or should I process before for some reason?

In my form xml the file is defined like this:

<field name="logo" type="file"
class="inputbox validate-file"
label="Logotipo"
required="false"
size="100"
/>
and my controller code is like this:

protected function postSaveHook(JModel &$model, $validData =
array()) {
$file = JRequest::getVar('logo', null, 'files', 'array');
if ($file) {
$filename = JFile::makeSafe($file['name']);
$src = $file['tmp_name'];
$ext = strtolower(JFile::getExt($filename));

if ($ext == 'jpg' || $ext == 'gif' || $ext == 'png') {
$fld = $model->get('nombre');
$dest = JPATH_BASE . DS . 'content' . DS . $fld .
'logo' . $ext;
if (JFile::upload($src, $dest)) {
//TODO: process image.
} else {
$this->setMessage(JText::_('No se ha podido
guardar el logo'), 'error');
}
} else {
$this->setMessage(JText::_('Por favor, utiliza
imágenes de formato jpg, gif o png para el logo.'), 'error');
}
} else if (IW_ENV == IW_DEVELOPMENT) {
$this->setMessage(JText::_('No file received'), 'error');
}
}

And I allways see the "No file received" message...

Any clue?

Thanks!

Daniel Peraza

unread,
Mar 27, 2011, 10:29:43 PM3/27/11
to Joomla! General Development
Intenta hacer un var_dump($_FILES) para ver que hay en el array
$_FILES. Eso te podria dar una idea de donde buscar errores.

Por otra parte, podrias explicarme un poco como funcionan los campos
de tipo file con JForm? no encuentro documentacion en el wiki al
respecto.

On 10 mar, 14:06, Nacho <na...@imaginaworks.com> wrote:
> Hi again,
>
> Im trying to upload a file, in a form defined in xml using JForm, but
> the file seems not to be present in JRequest. I'm following this
> examplehttp://docs.joomla.org/How_to_use_the_filesystem_package#Upload_-_Ful...,

Nacho

unread,
Mar 28, 2011, 7:27:37 AM3/28/11
to Joomla! General Development
Hola Daniel,

muchas gracias por tu respuesta.

El problema es que el campo venía dentro del grupo "jform", así que no
encontré la forma de acceder a él directamente. Al final lo resolví
sacando el campo form fuera del formulario xml y pintándolo a mano en
la vista para tratarlo aparte como siempre. He estado echando un ojo
al código del campo en Joomla, y no parece que haga nada más que
pintar el campo file, aunque lo divertido sería comprobar si JTable es
capaz de hacer binding con un campo de tipo BLOB, por ejemplo. En mi
caso no necesitaba insertar el archivo en b.d., así que no lo he
probado.

Saludos,

Nacho

unread,
Mar 31, 2011, 12:38:39 AM3/31/11
to Joomla! General Development
I finally found it, and it's quite simple...

$file = JRequest::getVar('jform', null, 'files', 'array');

On 28 mar, 13:27, Nacho <na...@imaginaworks.com> wrote:
> Hola Daniel,
>
> muchas gracias por tu respuesta.
>
> El problema es que el campo venía dentro del grupo "jform", así que no
> encontré la forma de acceder a él directamente. Al final lo resolví
> sacando el campo form fuera del formulario xml y pintándolo a mano en
> la vista para tratarlo aparte como siempre. He estado echando un ojo
> al código del campo en Joomla, y no parece que haga nada más que
> pintar el campo file, aunque lo divertido sería comprobar si JTable es
> capaz de hacer binding con un campo de tipo BLOB, por ejemplo. En mi
> caso no necesitaba insertar el archivo en b.d., así que no lo he
> probado.
>
> Saludos,
>
> On 28 mar, 04:29, Daniel Peraza <danielper...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Intenta hacer un var_dump($_FILES) para ver que hay en el array
> > $_FILES. Eso te podria dar una idea de donde buscar errores.
>
> > Por otra parte, podrias explicarme un poco como funcionan los campos
> > de tipo file con JForm? no encuentro documentacion en el wiki al
> > respecto.
>
Reply all
Reply to author
Forward
0 new messages