Comunidad de diseño web y desarrollo en internet online

Pedir path para guardar archivo generado

Citar            
MensajeEscrito el 06 Ago 2012 02:43 pm
Hola amigos de Flex 3, tengo una aplicación en intranet en la cual, a partir un botón "Guardar" y un select exporto (vía PHP) a excel. Eso anda perfecto, pero necesito pedir el path donde voy a guardar el excel en mi PC LOCAL. Alguien me puede ayudar para que cuando clickeo botón "Guardar" me pida el path?

Gracias! :D

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2012 02:55 pm
Eso es un atributo del Sandbox del Flash Player y la única forma de evitarlo es creando una aplicación AIR o proyector, es decir que corra en local. Si es aplicación web, te lo pide por un tema de seguridad

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2012 03:01 pm
Gracias por responder Jorge, he corrido el PHP desde la intranet, y no me pide ningún PATH, solo genera el archivo (excel ) y lo guarda en la carpeta default de descargas, lo que quiero es que me pida el path SIEMPRE. Por si sirve, adjunto el PHP, gracias!

<?php
//CONEXION A LA BASE DE DATOS
include("conexioncompetencias.php");
$conn = mysql_connect($bd_host, $bd_user, $bd_pass);
mysql_select_db($bd_name,$conn);
//require_once('__conn.php');

#Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql = "SELECT Id_Area as Identificador, Descripcion_Area as Descripcion, Depende, Personas, fechacarga as 'Último movimiento' FROM area ORDER BY Id_Area";

$r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR );
$return = '';
if( mysql_num_rows($r)>0){
$return .= '<table border=1>';
$cols = 0;
while($rs = mysql_fetch_row($r)){
$return .= '<tr>';
if($cols==0){
$cols = sizeof($rs);
$cols_names = array();
for($i=0; $i<$cols; $i++){
$col_name = mysql_field_name($r,$i);
$return .= '<th>'.htmlspecialchars($col_name).'</th>';
$cols_names[$i] = $col_name;
}
$return .= '</tr><tr>';
}
for($i=0; $i<$cols; $i++){
#En esta iteración podes manejar de manera personalizada datos, por ejemplo:
if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp
$return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
}else if($cols_names[$i] == 'activo'){ #Estado lógico del registro, en vez de 1 o 0 le muestro Si o No.
$return .= '<td>'.htmlspecialchars( $rs[$i]==1? 'SI':'NO' ).'</td>';
}else{
$return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
}
}
$return .= '</tr>';
}
$return .= '</table>';
mysql_free_result($r);
}
#Cambiando el content-type más las <table> se pueden exportar formatos como csv
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=AREAS_".date('Y-m-d').".xls");
echo $return;
?>

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2012 03:09 pm
Primero: si lo quieres guardar en el servidor, nunca te pide ruta, si lo quieres guardar en local siempre te pide ruta, así funciona el flash player. Si te ha guardado un archivo local desde una aplicación web (no proyector/no air) cuentanos con detalle como hiciste

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2012 03:12 pm
Ah....en realidad ejecuté desde la intranet el PHP, no como servicio HTTP dentro del aplicativo flex.
Es decir que si ejecuto una aplicación flex y solicito el HTTP desde un button, me pide el PATH?

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2012 03:13 pm
si lo quieres guardar en el servidor, nunca te pide ruta, si lo quieres guardar en local siempre te pide ruta, así funciona el flash player


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2012 03:48 pm
Gracias Jorge, me da el siguiente error, tendrá que ver con el resultFormat del HTTP ?

El PHP ejecutado solo, anda perfecto.

EL HTTP es:
<mx:HTTPService id="AreasExporta" showBusyCursor="true" method="POST" useProxy="false" resultFormat="e4x" result="" url="{'EXPORTAR-AREAS.php?'}"/>

EL PHP hace el select y luego:

header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=AREAS_".date('Y-m-d').".xls");

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2012 03:49 pm
me da el siguiente error


¿que error?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2012 03:55 pm
perdòn, daba erro 1090 xml mal formado, pero ahora no da nada, solo que el excel creado desde el select no lo baja. si ejecuto el php directo en la intranet, lo hace pero sin pedir PATH, lo baja al c:\usuario...\descargas.

Por grodrig61

Claber

223 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ago 2012 03:57 pm
Para hacer un download considera esto:

El PHP te genera el archivo y te devuelve el nombre (o error si no lo pudo crear), luego usas Filereference.download para bajarlo (mirate la clase Filereference)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Ago 2012 04:15 pm
Buenisimo! Gracias Jorge

Por grodrig61

Claber

223 de clabLevel



 

chrome

 

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