Foros del Web » Programando para Internet » PHP »

CURL php download pdf abre en nueva pestaña

Estas en el tema de CURL php download pdf abre en nueva pestaña en el foro de PHP en Foros del Web. Hola, a través de CURL accedo a una web que contiene url de descarga de ficheros pdf. Cuando clicas sobre el icono de descarga se ...
  #1 (permalink)  
Antiguo 10/06/2020, 08:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
CURL php download pdf abre en nueva pestaña

Hola,

a través de CURL accedo a una web que contiene url de descarga de ficheros pdf. Cuando clicas sobre el icono de descarga se abre una nueva pestaña en el navegador donde se visualiza el fichero pdf.

Por ejemplo clicó sobre el icono de la factura 2007814 y se abre una nueva pestaña con el siguiente link:

$url_file = https://www.energiaelectrica/[..]/imprimir_factura.jsp&factura=2007814

Si ese link lo copio, abro de nuevo el navegador y lo copio en la dirección se visualiza el pdf correctamente.

El problema es que quiero descargar el fichero pdf en mi ordenador para lo que uso el siguiente codigo.

Código PHP:

$header_pdf
= array( 'Content-Type: application/pdf;charset=UTF-8');  

curl_setopt($chCURLOPT_SSL_VERIFYPEER,false);
curl_setopt($chCURLOPT_SSL_VERIFYHOST,false);
curl_setopt($chCURLOPT_HTTPHEADER$header_pdf); 
curl_setopt($chCURLOPT_COOKIE,"JSESSIONID=yGkKoMU");
curl_setopt($chCURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_URL,$url_file);
curl_setopt($chCURLOPT_COOKIEJAR$cookie_file_path);
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
$data curl_exec ($ch);
                 
$name=$contrato.".pdf";
$destination "Descargas/".$name;
$file fopen($destination"w+");
fputs($file$data);
fclose($file); 
Pero se me descarga un fichero de tipo pdf pero dañado, contiene código html de la pagina.

Un saludo,
  #2 (permalink)  
Antiguo 10/06/2020, 11:06
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años, 7 meses
Puntos: 68
Respuesta: CURL php download pdf abre en nueva pestaña

Tendrás que buscar en el código fuente que obtienes de respuesta (en la variable $data), el enlace de descarga, para posteriormente, mediante una nueva petición cURL hacia dicho enlace, obtener el contenido binario del PDF.

Esto se puede hacer con una simple expresión regular, pero es imposible decirte si no conocemos el código fuente que obtienes.

¿Puedes mostrar un ejemplo de dicho código fuente? Cambia el .pdf a .txt y muéstranos el contenido.

  #3 (permalink)  
Antiguo 10/06/2020, 17:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: CURL php download pdf abre en nueva pestaña

Seguramente esa página se encarga de generar un PDF y luego redirigir para descargarlo, en todo caso, vas a tener que agregar opciones en cURL para seguir esa redirección.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: curl, download, pdf, pestaña
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 15:46.