Foros del Web » Programando para Internet » Javascript »

capturar evento de descarga de fichero

Estas en el tema de capturar evento de descarga de fichero en el foro de Javascript en Foros del Web. Buenas, hago una breve introducción antes de exponer mi duda: Tengo una pagina (principal) que envía a través un formulario una solicitud de informe que ...
  #1 (permalink)  
Antiguo 08/01/2015, 10:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
capturar evento de descarga de fichero

Buenas, hago una breve introducción antes de exponer mi duda:

Tengo una pagina (principal) que envía a través un formulario una solicitud de informe que almaceno en una tabla pgsql. Utilizo esta tabla desde un programa en visual basic que en función de lo que lee ataca a unas tablas dbf de facturaplus, genera un informe en pdf y lo sube por ftp y a la vez que devuelve el código php que se escribe en el navegador. Este código hace una llamada a otro fichero que descarga y muestra el pdf generado en la web.

.... todo esto funciona correctamente, pero no consigo hacer volver a la página principal, es decir, tengo el siguiente flujo:

Principal.php->MiWS.php->MostrarPDF.php

cuando termina el proceso se me queda en la pantalla del navegador lo que se genera en MiWS.pdf y quiero que me vuelva a Principal.php

He probado con
* window.history.go(-2)
* header("Location: " . $_SERVER['HTTP_REFERER']);

pero no lo he logrado volver a la página Principal.php

...Parece un proceso muy enrevesado, pero tal y como lo tengo parametrizado no se me ocurre otra forma de simplificarlo, a menos de momento.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 09/01/2015, 01:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: capturar evento de descarga de fichero

Hola:

Con javascript solo puedes usar location.href y history.go() (al menos yo no conozco alternativas)...

Sin javascript, si sabes que debe ir a "Principal.php", porqué no usas esa url directamente:

header("Location: Principal.php");

Valdría tambien en el location de javascript (lo menos aconsejable), y el meta redirect html.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 09/01/2015, 03:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: capturar evento de descarga de fichero

Muchas gracias caricatos, pero MiWS.php está parametrizado para hacer de servicio web, y VB le devuelve un texto que a su vez llama a MostrarPDF.php, y obviamente hago algo mal porque lo que quiero es que vuelva a la página Principal.php, pero se me queda en MiWS.php

Pego el texto simplificado que devuelve VB:

<html>
<head>
<meta http-equiv=Refresh url=http://192.168.1.73:8080/MostrarPDF.php?f=fichero.pdf>
</head><body>
Descarga del PDF en curso...
<a href=http://192.168.1.73:8080/Principal.php>volver</a>
</body>
</html>

Lo que yo quisiera es que una vez se hace la llamada a MostrarPDF.php me volviera a cargar la que ha llamado a MiWS.php, y no tener que volver mediante el enlace, es decir, capturar el evento de descarga de fichero (si es posible) y volver.
  #4 (permalink)  
Antiguo 10/01/2015, 13:48
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: capturar evento de descarga de fichero

Si MiWS.php es un servicio web, lo que tendrías que hacer es que principal.php mande la petición (mediante un formulario, o lo que sea que necesites) a un nuevio fichero "procesarPeticion.php" que éste sí, llamaría por CURL síncrono a "MiWS.php" enviándole los datos correctos. Y con la respuesta de tu servicio web, tu "procesarPeticion.php" podría actuar en consecuencia, por ejemplo con una redirecciónl header ("location: MostrarPDF.php") en caso de éxito enviándole los argumentos correctos (directamente por GET o POST, o metiéndolos en sesión), o a otra página en caso de error.

Normalmente los servicios web devuelven la respuesta en formato XML para los lenguajes fuertemente tipados, o en JSON útil para los débilmente tipados como PHP.

Última edición por marlanga; 10/01/2015 a las 13:53

Etiquetas: evento, fichero, formulario, funcion, php, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:22.