Foros del Web » Programando para Internet » PHP »

Ayuda con la descarga en php

Estas en el tema de Ayuda con la descarga en php en el foro de PHP en Foros del Web. Hola a todos quisiera que me ilustraran con un problema de php que tengo estoy recien aprendiendo a programar y tengo el problema de que ...
  #1 (permalink)  
Antiguo 22/01/2011, 10:05
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Exclamación Ayuda con la descarga en php

Hola a todos quisiera que me ilustraran con un problema de php que tengo estoy recien aprendiendo a programar y tengo el problema de que quiero descargar un archivo que esta en mi servidor pero a la hora de descargarlo lo baja corruto y no puedo leerlo aqui les pongo el codigo:


if ($cmdAccion == "nota PDF") {
if ($canc == 1) {
echo "La nota esta cancelada no se puede descargar";
} else {
$facele="aqui pongo la ruta del archivo".$serie.$nota.".pdf";
$file = file($facele);
$file2 = implode("", $file);
header("Content-Disposition: attachment; filename=$facele\r\n\r\n");
header("Content-Length: ".strlen($file2)."\n\n");
echo $file2;
};

espero me puedan ayudar gracias
  #2 (permalink)  
Antiguo 22/01/2011, 10:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Ayuda con la descarga en php

Agrega los siguientes headers a tu script:
Código PHP:
Ver original
  1. header('Content-Type:application/pdf');
  2. header('Content-Transfer-Encoding: binary');
  #3 (permalink)  
Antiguo 22/01/2011, 10:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda con la descarga en php

Y lee el archivo completo usando file_get_contents(), asi no lo cargas en un array para luego unirlo de nuevo (file + explode)
  #4 (permalink)  
Antiguo 22/01/2011, 11:13
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: Ayuda con la descarga en php

gracias por su pronta respuesta pero me sigue fallando la descarga me descarga _carpeta1_carpeta2nota353 no se si mi error estara en darle la busqueda de la ruta
  #5 (permalink)  
Antiguo 22/01/2011, 11:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por ingenioivan Ver Mensaje
gracias por su pronta respuesta pero me sigue fallando la descarga me descarga _carpeta1_carpeta2nota353 no se si mi error estara en darle la busqueda de la ruta
podría ser, para eso verifica que el archivo exista con is_file()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 22/01/2011, 11:32
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por pateketrueke Ver Mensaje
podría ser, para eso verifica que el archivo exista con is_file()
si existe el documento esta dentro de carpeta2 pero lo extraño es que hize otra prueba en otra hubicacion y si me baja el archivo bien pero en el directorio donde tengo mi pagina web no lo hace lo baja corrupto.
  #7 (permalink)  
Antiguo 22/01/2011, 11:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con la descarga en php

intenta no enviar las cabeceras de la descarga y solo imprime el contenido del archivo a bajar... ¿que resulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 22/01/2011, 11:55
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Pregunta Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por pateketrueke Ver Mensaje
intenta no enviar las cabeceras de la descarga y solo imprime el contenido del archivo a bajar... ¿que resulta?
pateketrueke muchas gracias por tu ayuda sin embargo a un no me funciona le quite las cabeceras y peor no me manda ala ventana de descarga, no se si me puedas poner un ejemplo de una descarga para compararlo con mi codigo y apartir de alli ver mi error aunk creo k si cumplo con todo lo que ocupa la descarga.
  #9 (permalink)  
Antiguo 22/01/2011, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con la descarga en php

me refiero unicamente a que hagas todo lo que tienes, excepto los header()

automaticamente no te va salir la ventana de descarga, lo único que quiero verificar es lo que sucede.... ¿que ocurrió?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 22/01/2011, 12:05
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con la descarga en php

Código PHP:
Ver original
  1. $f = "el archivo";
  2. header("HTTP/1.1 200 OK");
  3. header("Status: 200 OK");
  4. header('Content-Disposition: attachment; filename="'.$f.'"'); //Nombre del archivo
  5. header('Content-Length: '.filesize($f));



y otro
Código PHP:
Ver original
  1. <?php
  2. /*Codigo por dedydamy.com */
  3. $ar=$_GET['archivo']; //Obtenemos el archivo desde get
  4. $separar=explode('.',$ar);//separamos desde el punto
  5. $extencion=$separar[1];//creamos Variable que contenga despues del punto
  6. $extenciones_permitidas=array('jpg','jpeg','gif','png');//Creamos un array con las extenciones que queremos que baje(se pueden añadir mas)
  7. if (in_array($extencion,$extenciones_permitidas)) {//Si la extencion es permitida continuamos
  8. if(file_exists($ar)){//Si el archivo existe continuamos
  9. $filepath = ($ar);//Creamos variable con nombre del archivo
  10. header("HTTP/1.1 200 OK");//testeamos cabecera
  11. header("Status: 200 OK"); //testeamos cabecera
  12. header('Content-Type: text/php');//testeamos cabecera
  13. header('Content-Disposition: attachment; filename="'.$filepath.'"'); //testeamos cabecera
  14. header('Content-Length: '.filesize($filepath));//testeamos cabecera
  15. readfile($filepath);//Descargamos mediante readfile
  16. }else{//Si no existe
  17. echo"El archivo: ".$ar." No existe";//Lo decimos
  18. }
  19. } else {//Si la extencion no se puede descargar
  20. echo"El archivo: ".$ar." No Puede ser descargado";//Lo decimos
  21. }
  22. /*Codigo por dedydamy.com */
  23. ?>

http://ejemplo.com/download.php?archivo=aqui archivo a descargar.jpg


Ojo tenes que poner las medidas de seguridad necesarias, porque si no se pueden descargar tu web
  #11 (permalink)  
Antiguo 22/01/2011, 12:23
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Busqueda Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por pateketrueke Ver Mensaje
me refiero unicamente a que hagas todo lo que tienes, excepto los header()

automaticamente no te va salir la ventana de descarga, lo único que quiero verificar es lo que sucede.... ¿que ocurrió?
solamente me envio a una pagina en blanco gracias seguire intentando
  #12 (permalink)  
Antiguo 22/01/2011, 12:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por ingenioivan Ver Mensaje
solamente me envio a una pagina en blanco gracias seguire intentando
eso es lo que queria saber, lo cual significa que obviamente algo -o nada- sucede y no sabemos lo que es...

agrega estas lineas a tu scripts tal está ahora y ejecutalo de nuevo:
Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'1); 
¿ahora que ocurre?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 22/01/2011, 12:28
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Pregunta Respuesta: Ayuda con la descarga en php

[QUOTE=marcofbb;3716115]
Código PHP:
Ver original
  1. $f = "el archivo";
  2. header("HTTP/1.1 200 OK");
  3. header("Status: 200 OK");
  4. header('Content-Disposition: attachment; filename="'.$f.'"'); //Nombre del archivo
  5. header('Content-Length: '.filesize($f));

marcofbb me intereso este codigo ya que es muy parecido al mio sin embargo no es un archivo el cual tiene un nombre definido ya que el archivo a descargar esta compuesto de un arreglo

$facele="/carpeta1/carpeta2".$serie.$nota.".pdf"; si te fijas pongo la ruta mas las variables a buscar que tengo definadas y de alli parte a localizar el arhivo correto y especifico dentro de la ruta asignada. si me pudieras explicar un poco
  #14 (permalink)  
Antiguo 22/01/2011, 12:34
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por pateketrueke Ver Mensaje
eso es lo que queria saber, lo cual significa que obviamente algo -o nada- sucede y no sabemos lo que es...

agrega estas lineas a tu scripts tal está ahora y ejecutalo de nuevo:
Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'1); 
¿ahora que ocurre?
gracias pateketruene me salio esto

file() [function.file]: No se puede acceder a / carpeta1/carpeta2CS353.pdf en / usr / local / www / data /NewWeb / notas.php en la línea 52

advertencia: implode () [function.implode]: Argumentos erróneos. en / usr / local / www / data / NewWeb / notas.php en la línea 53

Advertencia: el archivo (/ carpeta1/carpeta2CS353.pdf) [function.file]: no pudo abrir la secuencia: Ningún tal fichero o directorio en / usr / local / www / data /NewWeb /notas.php en la línea 52
  #15 (permalink)  
Antiguo 22/01/2011, 12:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con la descarga en php

bingo!!

bueno, pues ahí tienes los mensajes de error que te indican cual era el problema... si lo quieres solucionar entonces pon atención en ello...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 22/01/2011, 12:43
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
De acuerdo Respuesta: Ayuda con la descarga en php

Cita:
Iniciado por pateketrueke Ver Mensaje
bingo!!

bueno, pues ahí tienes los mensajes de error que te indican cual era el problema... si lo quieres solucionar entonces pon atención en ello...
okey y muchas gracias por todo saludos
  #17 (permalink)  
Antiguo 26/01/2011, 09:34
 
Fecha de Ingreso: enero-2011
Ubicación: Mexico
Mensajes: 140
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: Ayuda con la descarga en php

bueno mi descarga como se nota seria desde una ruta sin embargo no funcionaba la solucion es que mi usuario que creo el directorio donde tenia alojada mi web no tenia permisos para acceder a otra ruta por eso aunque encontraba el archivo lo bajaba corrupto.

Etiquetas: descargas
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 18:21.