PHP - Accionar etiqueta "a" de html al final de funcion php

 
Vista:
sin imagen de perfil

Accionar etiqueta "a" de html al final de funcion php

Publicado por mauro (25 intervenciones) el 04/07/2016 23:21:06
Hola

Quiero saber si se puede accionar automaticamente una etiqueta a al final de una funcion php.

El contexto es....

Tengo un modulo en una web app que crea archivos y los almacena en servidor. Y me gustaria que final del proceso de creacion y gurdado se accionara automaticamente la etiqueta "a" para descaragar el archivo creado

1
<a href="../controllers/results/export.pptx" download="reporte" >Descargar Archivo</a>

Actualmente lo hago con esta funcion

1
2
3
4
5
6
7
8
9
10
11
12
private function downloadFile($dir,$file,$alias)
	{
		$path=$dir.$file;
		$name=$alias.".pptx";
	  	$size = filesize($path);
	    header("Content-Type: application/force-download");
	    header("Content-Disposition: attachment; filename='$name'");
	    header("Content-Transfer-Encoding: BINARY");
	    header("Content-Length: " . $size);
	    // Descargar archivo
	    readfile($path);
	}

Pero quiero saber si se puede hacer una funcion que en lugar de headers use etiqueta la etiqueta a de html y que se ejecute automaticamente. La idea es que esta etiqueta no sea visible al usuario y que tampoco interactue con ella.

Saludos espero me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Accionar etiqueta "a" de html al final de funcion php

Publicado por DAVID (129 intervenciones) el 05/07/2016 07:32:50
Puedes hacerlo con JQuery muy facil, de esta manera:
Si tu etiqueta <a> fuera asi:
1
<a href="../controllers/results/export.pptx" download="reporte" id="enlace" >Descargar Archivo</a>

Podrias ejecutarlo cuando tu quisieras con esta instruccion:
1
$("#enlace").click();


Un saludo,
David
soluciones web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Accionar etiqueta "a" de html al final de funcion php

Publicado por mauro (25 intervenciones) el 05/07/2016 21:43:17
Honestamente no he utilizado JQuery antes y no se muy bien como aplicarlo...

Crees se pueda que se pueda hacer una fuccion que contenga un equiqueta a y accionarla automaticamente?. Es decir un equivalente a la funcion de descarga con headers que puse al principio.


En la funcion wirte se llamaba a downloadFile al final de su ejecución

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function write($phpPresentation, $filename, $writers, $alias)
	{
	    $result = '';
 
	    // Write documents
	    foreach ($writers as $writer => $extension) {
	        $result .= date('H:i:s') . " Write to {$writer} format";
	        if (!is_null($extension)) {
	            $xmlWriter = IOFactory::createWriter($phpPresentation, $writer);
	            $xmlWriter->save(__DIR__ . "/{$filename}.{$extension}");
	            rename(__DIR__ . "/{$filename}.{$extension}", __DIR__ . "/results/{$filename}.{$extension}");
	        } else {
	            $result .= ' ... NOT DONE!';
	        }
	    }
 
	    $result .= $this->getEndingNotes($writers);
 
 
	    $this->downloadFile("C:/xampp/htdocs/seisp/controllers/results/","export.pptx", $alias);
 
	    exit;
	}

Crees que en la funcion de downloadFile se pueda usar la eqtiqueta a y el script en lugar de los headers?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private function downloadFile($dir,$file,$alias)
	{
		$path=$dir.$file;
		$name=$alias.".pptx";
	  	$size = filesize($path);
	    header("Content-Type: application/force-download");
	    header("Content-Disposition: attachment; filename='$name'");
	    header("Content-Transfer-Encoding: BINARY");
	    header("Content-Length: " . $size);
	    // Descargar archivo
	    readfile($path);
	    Yii::$app->session->setFlash("errordownload");
	    exit;
	}


Saludos LES AGRADEZCO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Accionar etiqueta "a" de html al final de funcion php

Publicado por DAVID (129 intervenciones) el 06/07/2016 08:32:15
pues para usar JQuery, solo tienes que incluir la librería, y después poner el codigo que te puse. De esta manera, por ejemplo:
1
2
3
4
5
6
7
8
<script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
 
$(document).ready(function() {
 
$("#enlace").click();
});
</script>
con eso ya lo tendrías. Es muy fácil.

Un saludo,
David
diseño web madrid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar