Comunidad de diseño web y desarrollo en internet online

FLEX adjuntar un archivo para enviarlo

Citar            
MensajeEscrito el 28 Mar 2011 04:32 pm
hola amigos soy nuevo en FLEX estoy relizando mi primera aplicacion en flex que usa AMFPHP y php

mi aplicacion requiere que pueda adjuntar un documento desde un boton. para guardarlo en una BD
y luego ser recuperado.

pero no veo la forma en cual pueda hacer eso desde flex !!
alguien ha intentado algo asi? cualquier orientacion me serviria

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Mar 2011 08:41 pm
Tienes que usar la clase FileReference para subir el archivo al servidor, l;uego tu lenguaje de back-end es el que recupera el archivo para adjuntarlo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Mar 2011 12:11 am
grax jorge!
la verdad nunca he usado esa clase filereference . leere para ver como se usa.

el concepto es q desde la app flex escoja un archivo y lo mande al servidor.

luego mi php lo ejecuta y lo guarda en m bd . No?


segun esto tengo un codigo php ..aunke no estoy muy seguro de su uso ya q el metodo de adjuntar no me sirve.

<?php

class controladoraPHP //nombre de mi clase- asi se debe llamar el archivo
{

function ingresarActividad($Cedula,$Empresa,$FechaRte,$Descripcion,$Evidencia)
{

$dbhost="localhost";
$dbusuario="xx";

$dbpassword="xx";
$db="xx";

$mysql = mysql_connect($dbhost, $dbusuario, $dbpassword);

mysql_select_db( $db );

$mysql = mysql_connect($dbhost, $dbusuario, $dbpassword);

mysql_select_db( $db ); //acemos que la bd que queremos sea la activa

$sql = "INSERT INTO actividad(cedulaempleado,empresa,fechareporte,descripcion,evidencia)VALUES ('$Cedula','$Empresa','$FechaRte','$Descripcion','$Evidencia')";
$Result = mysql_query( $sql );

}


function adjuntardocumento(){


$dbhost="localhost";
$dbusuario="xx";

$dbpassword="xx";
$db="xx";

$mysql = mysql_connect($dbhost, $dbusuario, $dbpassword);

mysql_select_db( $db );

$archivo = $_FILES["archivo"]["tmp_name"];
$tamanio = $_FILES["archivo"]["size"];
$tipo = $_FILES["archivo"]["type"];
$nombre = $_FILES["archivo"]["name"];
$tit = "titulo";

if ( $archivo != "none" )
{
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);

$qry = "INSERT INTO registrosadjuntos VALUES
(0,'$nombre','$tit','$contenido','$tipo')";
//echo "$qry";
mysql_query($qry);
}
}

}

?>


mi codigo xml es este simplemente con la propiedad click de un boton invoco esta funcion

public function adjuntar():void{

miConexion.call("controladoraPHP.adjuntardocumento",new Responder(exitoAdjunta,errorFuncion));

}

ando muy desorientado hehe ..si me puedes orientar te lo agradeceria ..

grax

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Mar 2011 03:31 pm
Lo primero es que puedas subir archivos, aquí ejemplos: http://www.flex888.com/296/9-flex-file-upload-examples-visited.html
Luego tienes que modificar el PHP para guardar la info. Tip: no conviene guardar la imagen en la BD, sino el nombre del archivo, luego recuperas el nombre del archivo de la BD y lo cargas como cualquier otro

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Mar 2011 06:44 pm
ok muchas gracias ..ahora por fin voy dibujando ca da ves mas mi concepto de integracion y aprendiendo a usar las clases que me fueron recomendadas..

muchas gracias jorge por responder mi solicitud.. ahora bn...segun lo q entiendo lo que debo hacer es:

(*) por medio de un boton en una interfaz flex subir un archivo al servidor .
(*)esto se hace por medio de fileReference + un codigo del lado del servidor q ejecute la accion
en mi caso php.

segun estos pasos hice estos scripts:

FLEX 3B
esta es una funcion q se invoca en el evento click de un boton.
declaro variables.
cargo unas variables para los tipos de datos q kiero guardar.
-----------------------------------------------------------------------------------------------
private var archivo:FileReference= new FileReference();
private var req:URLRequest=new URLRequest();

private function escojerArchivo():void{

var img:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
var text:FileFilter = new FileFilter("Text Files (*.txt, *.rtf)", "*.txt; *.rtf;*.pdf;*.doc;*.docx;*.xlsx;*.xls");
var allTypes:Array = new Array(img, text);
req.url="index.php";
archivo.browse(allTypes);
archivo.addEventListener(Event.SELECT,guardarArchivo);
}

<mx:Button " click="escojerArchivo();"/>
----------------------------------------------------------------------------------------------------------------------
segun entiendo con req.url le digo a mi flex q buske este archivo php el cual subira el archivo
abro el browser y genero el evento guardar archivo (sin programar).
este archivo php lo tengo alojado en la raiz de mi proyecto flex
----------------------------------------------------------------------------------------------------------------------
aki esta mi codigo php

index.php
html
<head>
<body>
<form action="index.php" method="post" enctype="multipart/form-data">

INGRESE AQUI SU ARCHIVO

<input type="file" name="archivo">
<input type="submit" value="Guardar">

</form>
<?php

//$archivo = $_FILES['archivo'];
$archivo = $_FILES['archivo'];
$nombre = $_FILES['archivo']['name'];
$rutatmp = $_FILES['archivo']['tmp_name'];
$rutanueva = "archivos/".$nombre;

if(is_uploaded_file($rutatmp)){
if(copy($rutatmp,$rutanueva)){
echo "se guardo !!";
}else{
echo"nada parse ";
}

}else{
echo "no ha cargado";
}
?>
/body>
...................................................................................................................
por ahora intento q cuando le de en mi mxboton copie el archivo selecionado en una carpeta q se llama [b]archivos[/b]...

pero no hace nada..asi q por ahora seguire trabajandole a esto..por q estoy muy kedado..
grax por los links ..los vi!!, pero fallo al intentar implemntarlo...
cualkier ayuda seria lo maximo ><...soy como un ciego frente al mar jeje

saludos

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Mar 2011 07:12 pm
Mira aquí un script en PHP: http://weblog.cahlan.com/files/php_fileuploads.html
Tips: el archivo viene como $_FILES['file'], usa move_uploaded_file en vez de copy para moverlo, no hace falta nada de tags HTML en el script, solo código PHP, porque tu objetivo es procesar, no mostrar nada (lo que tienes parece que lo tomaste de algún formulario)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Mar 2011 07:20 pm
si el codigo tiene tags por q es un ejemplo q estaqba probando..para saber si copiaba..
me dispondre a implemetar el codigo q me diste..te contare en un momento como me ha salido..

grax otra ves viejo !!

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Mar 2011 01:22 am
bueno jorge te agradezco de nuevo por la ayuda brindada me ayudo mucho
por ahora ya pude realizar el ejercico de escojer un archivo y guardarlo...

pronto vendre con mas preguntas =)

TeNm3

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Mar 2011 08:21 pm
hOLA VENGO CON OTRA PREGUNTA RELACIONADA CON ADJUNTAR ARCHIVOS..

actualmente tengo una aplicacion donde un ususario puede escojer un archivo y guardarlo en una carpeta en el servidor.

lo siguiente que me gustaria realizar ..es que cuando la informacion final sea enviada ala BD ...una funcion recupere el archivo q el usuario acaba de adjuntar y lo inserte en la BD.
.tengo dudas tales como...:

como sabria la funcion cual es el doc y a ccual usuario le pertenece?
tambien kisiera saber como validar el llamado de una funcion..
por ejemplo: q no se pueda enviar la info sin haber adjuntado el doc??


saludos a todos los desarrolladores... animense a escribir q esto es para todos xD

TeNm3

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 Mar 2011 02:24 am
Deberías darle un nombre temporal predeterminado que uses en la inserción ... el tema es que si hay muchos insert concurrentes, puede que se mezclen los archivos ... para ello puedes usar por ejemplo un timestamp y devolverlo cuando termina la subida ... o mandar un timestamp desde Flash que lo recuerdes al momento de mandar la info para insertar.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Mar 2011 03:09 am
bueno me resolvi por una bandera para validar el llamado de la funcion xD
ahora jorge dices que cada ves q guarde un archivo .. lo guarde con un nombre predeterminado?
asi siempre va a leer el doc q se este tramitando ...algo asi entendi jejeje...

grax por la ayuda

Alejo

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Abr 2011 03:01 pm
ola jorge te cuento que ya he logrado hacer lo que me habia propuesto...
ahora me preocupa lo que me dijiste la ultima vez..que posiblemente pueda ocurrir un problema de concurrencia y se mezclen los archivos...eso seria una falla grande...vos me dijiste q utilizara un timestamp...tienes alguna referencia q pueda usar?..osea me interesa q los documentos no se vayan a mezclar ...vuelvo a ti por q me orientaste me sirvio tu ayuda..

como lo utilzo? cual criterio?
osea al guardar el doc..tambien registra la hora q se guardo?

Por TeNm3

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Abr 2011 06:30 pm
La idea es que uses la función time() de PHP para generar un timestamp que uses como nombre del archivo, ese nombre lo pasas como respuesta cuando terminas de subir el archivo, lo guardas en el cliente, lo usas en el update de la BD, de esa forma te evitas el problema de la concurrencia, que es directamente proporcional a la cantidad de gente que usará tu aplicación

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2012 02:38 am
Alguien sabe como hacer lo mismo, cargar un documento al servidor pero usando java + flex??

Por natalynanda

8 de clabLevel



Genero:Femenino  

estudiante ing. Sistemas

firefox
Citar            
MensajeEscrito el 24 Abr 2012 01:23 pm
La parte de Flex no cambia, solo tienes que manejar el archivo subido en JAVA y claro, apuntar desde Flex a un servlet o jsp

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.