elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Forzar Descarga PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Forzar Descarga PHP  (Leído 7,534 veces)
Urpem


Desconectado Desconectado

Mensajes: 396



Ver Perfil
Forzar Descarga PHP
« en: 11 Noviembre 2009, 23:48 pm »

Hola, estoy haciendo una pàgina en la que tengo que poder descargar unos ficheros PDF y otros directamente.

Buscando información encontré en otra pagina:

La página llamada descargas.php le paso la ruta relativa por el enlace
Código
  1. <?php
  2.    $f = $_GET["f"];
  3.    header("Content-type: application/octet-stream");
  4.    header("Content-Disposition: attachment; filename=\"$f\"\n");
  5.    $fp=fopen("$f", "r");
  6.    fpassthru($fp);
  7. ?>

El caso es que hace el intento de descargar el archivo pero lo descarga corrupto.

Entonces por aqui en un el post de "pequeños trucos en PHP" encontré esto:

Citar
Forzar descarga
Forzar la descarga de un archivo desde PHP en un navegador

Código

header("Content-type: application/force-download");


Pero incluso cambiando esa cabecera, se me siguen descargando corruptos los ficheros.

¿Alguien tiene idea de como arreglar eso? O quizas haya otro modo de hacerlo.

Gracias


En línea

Urpem


Desconectado Desconectado

Mensajes: 396



Ver Perfil
Re: Forzar Descarga PHP
« Respuesta #1 en: 12 Noviembre 2009, 00:52 am »

Ultimamente me pasa que me autorespondo 10min despues de exponer el problema xD

Encontre un modo de que me funcionara. Puse:

Código
  1. <?php
  2.  
  3. $f = $_GET["f"];
  4.  
  5. header('Content-type: application');
  6. header('Content-Disposition: attachment; filename='.$f);
  7.  
  8. ?>
  9.  
Probé con: header('Content-type: application/pdf'); pero limitaba las descargas a los pdf y aun asi no aceptaba todos los pdf. Asi que quité el "/pdf" y ahora va todo.

y otra cosa que hacia mal era que le pasaba el nombre del fichero sin tener en cuenta mayusculas y minusculas, es estricto con eso.


Saludos


« Última modificación: 12 Noviembre 2009, 00:54 am por samuray88 » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Forzar Descarga PHP
« Respuesta #2 en: 12 Noviembre 2009, 01:50 am »

que pasa si te solicito un archivo asi?
index.php?f=index.php
o
index.php?f=coneccion_db.php

Lo que podrías hacer mejor es alojar los pdf en un solo directorio y ponerle este archivo .htaccess:

Código:
AddType application/octet-stream .pdf
En línea

Urpem


Desconectado Desconectado

Mensajes: 396



Ver Perfil
Re: Forzar Descarga PHP
« Respuesta #3 en: 12 Noviembre 2009, 03:17 am »

que pasa si te solicito un archivo asi?
index.php?f=index.php
o
index.php?f=coneccion_db.php

Lo que podrías hacer mejor es alojar los pdf en un solo directorio y ponerle este archivo .htaccess:

Código:
AddType application/octet-stream .pdf

Se que eso es un fallo de seguridad. No acabo de entender eso del .htaccess pero de todas formas no quiero limitar las descargas a un solo tipo de fichero, sino a cualquier que le pidiera.

Aun asi, ejecuto esa pagina en un frame, asi que no se muestra la direccion directamente para modificarla.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Forzar Descarga PHP
« Respuesta #4 en: 12 Noviembre 2009, 03:24 am »

Hola, creas un archivo llamado ".htaccess" y pones dentro de ese archivo:

Citar
AddType application/octet-stream .pdf .doc .odt .loquesea

Despues pones ese archivo dentro del directorio donde estarán los archivos y ya. También se aplicará a los subdirectorios.
En línea

Urpem


Desconectado Desconectado

Mensajes: 396



Ver Perfil
Re: Forzar Descarga PHP
« Respuesta #5 en: 12 Noviembre 2009, 15:21 pm »

Muchas gracias, ahora ya lo tengo todo correcto. ::)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Forzar conexión en hibernate
Java
burdo 0 2,851 Último mensaje 25 Enero 2011, 11:34 am
por burdo
como forzar la descarga de ficheros de extensiones multiples con PHP?
PHP
hack-4-life 0 3,734 Último mensaje 15 Octubre 2011, 06:59 am
por hack-4-life
forzar un rename con un batch?
Scripting
litioazul 2 3,355 Último mensaje 28 Febrero 2012, 00:15 am
por litioazul
forzar descarga pdf
PHP
kakashi20 1 3,386 Último mensaje 27 Noviembre 2012, 10:44 am
por dimitrix
Forzar el uso de DNS
Seguridad
virtualedu 0 1,736 Último mensaje 4 Agosto 2015, 12:25 pm
por virtualedu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines