PDA

View Full Version : form submit upload file via ext.direct api submit



maneljn
4 Sep 2012, 12:33 AM
What i'm doing wrong ?

The form.


// Formulario para subir la foto
xtype: 'form',
name: 'formularioSubirFoto',
title: '',
bodyPadding: 5,
border: false,
anchor: '100%',
items: [{
xtype: 'filefield',
name: 'fotocontacto',
fieldLabel: gt.dgettext('esicontactos','Foto'),
labelWidth: 50,
msgTarget: 'side',
allowBlank: true,
anchor: '100%',
buttonOnly: true,
buttonText: gt.dgettext('esicontactos','Seleccione una imagen...')
}]


The submit action in mvc controller


if (formularioSubirFoto) {
// Comprobar si ha seleccionado alguna imagen
if (formularioSubirFoto.getForm().findField('fotocontacto').getValue().length>0) {
console.log("vamos al submit");
// Ejecutar el submit de este formulario con extdirect
formularioSubirFoto.getForm().submit({
api: {
submit: Ext.esicontactosDirect.esicontactos_contactos.subirFotoContacto
},
params: {
cto_id: cto_id,
cto_guid: cto_guid
},
success: function(form, action) {
console.log("success");
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
console.log("failure");
}
});
}
}


the php code


/**
* Subir la foto de un Contacto
* @remotable
*/
public static function subirFotoContacto( $_parametros)
{

$cto_id = intval(get_magic_quotes_gpc() ? stripslashes($_parametros->cto_id) : $_parametros->cto_id);
$cto_guid = get_magic_quotes_gpc() ? stripslashes($_parametros->cto_guid) : $_parametros->cto_guid;

// Comprobar campos obligatorios
if (!$cto_id>0) {
$respuesta['success'] = false;
$respuesta['errorNum'] = 0;
$respuesta['errorMsg'] = addslashes(dgettext("esicontactos","No se ha recibido el parametro cto_id"));
$respuesta['message'] = $respuesta['errorMsg'];
return $respuesta;
}
if (!strlen($cto_guid)>0) {
$respuesta['success'] = false;
$respuesta['errorNum'] = 0;
$respuesta['errorMsg'] = addslashes(dgettext("esicontactos","No se ha recibido el parametro cto_guid"));
$respuesta['message'] = $respuesta['errorMsg'];
return $respuesta;
}

foreach ($_FILES as $file) {
var_dump($file['tmp_name']);
}
die;

// correcto
$respuesta['success'] = true;
return $respuesta;
}



i don't see any POST in firebug...

maneljn
4 Sep 2012, 1:50 AM
i think that i have to change this, but the problem persists, i don't see any post and in php nothings happen.



/**
* Subir la foto de un Contacto
* @remotable
* @formHandler
*/
public static function subirFotoContacto( $post, $files )
{

.....

scottmartin
6 Sep 2012, 2:25 PM
What happens if you submit like this:




form.getForm().submit({
url: 'upload.php', // your url
waitMsg: 'Uploading your file...',
success: function(fp, o) {
Ext.Msg.alert('Sucessfully', 'Sucessfully done');
},
failure: function(form, action) {
Ext.Msg.alert('Failure', 'Upload failed');
}
});


Scott.