entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

descargar archivo en una carpeta en especifico

hola a todos, tengo este codigo

<?php
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$pdf = $dompdf->output();
$filename = "ejemplo".'.pdf';
file_put_contents($filename, $pdf);
$dompdf->stream($filename);
?>

alguien me puede ayudar a cambiarlo para que me lo descargue en una carpeta especifica?

1 Respuesta

4votos

Leonardo-Tadei Puntos227320

Por motivos de seguridad, eso no es posible.

Si lo fuera, podrías por ejemplo hacer que un archivo se guarde en C:\windows\notepad.exe y conseguir que una versión troyanizada del Notepad se instale en la PC del usuario.

La ruta de destino siempre la elige el usuario (ya sea por el default del navegador o por decidirlo manualmente).

Lo que sí podés hacer es enviar el tipo de archivo y el nombre (pero no la carpeta) que querés que tenga por default en destino

...
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
$dompdf->stream($filename);
?>

Saludos cordiales!

0voto

rach comentado

hola @Leonardo-Tadei primero que nada, gracias por responder a mi pregunta, tal vez me explique mal, lo que necesito es que lo descargue en una carpeta dentro de mi server, seguí los pasos de esta pagina y no me funciona :S

Saludos!

http://www.kabytes.com/programacion/tutorial-convertir-html-a-pdf-con-php/

1voto

Leonardo-Tadei comentado

Hola @rach ! Sí, te explicaste mal ;-) Generalmente se habla de "descarga" de un archivo cuando va desde el servidor a la PC del cliente, que es además lo que hace tu código.

Para guardar el PDF en el servidor, tenés que hacer:

...
$dompdf->render();
$pdf = $dompdf->output(); // esto te deja en la variable $pdf el contenido del documento PDF
$filename = "directorio/que/quieras/ejemplo".'.pdf';
file_put_contents($filename, $pdf);
?>

Es decir, no llamar a $dompdf->stream() que es el que envía el PDF al navegador del cliente, y agregar el directorio destino (relativo a la ubicación del script) en dónde querés que se guarde el PDF.

Tenés que revisar que el directorio de destino sea escribible por el usuario que ejecuta el script, ya que si no la escritura dará error.

Saludos!

0voto

rach comentado

muchas gracias si lo logré

0voto

Leonardo-Tadei comentado

Por nada! Recordá seleccionar la respuesta así el tema queda marcado como solucionado y le sirve a otros.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta