Foros del Web » Programando para Internet » PHP »

Descargar Archivos con Php desde el Servidor a la PC

Estas en el tema de Descargar Archivos con Php desde el Servidor a la PC en el foro de PHP en Foros del Web. Hola, estuve buscando una forma practica y sencilla de descargar un archivo desde el servidor con php y me encontre con esto: header("Content-Disposition: attachment; filename ...
  #1 (permalink)  
Antiguo 18/06/2012, 12:35
 
Fecha de Ingreso: julio-2011
Mensajes: 108
Antigüedad: 13 años, 4 meses
Puntos: 4
Pregunta Descargar Archivos con Php desde el Servidor a la PC

Hola, estuve buscando una forma practica y sencilla de descargar un archivo desde el servidor con php y me encontre con esto:

header("Content-Disposition: attachment; filename = $archNom");
header ("Content-Type: application/force-download");
header ("Content-Length: ".filesize($archNom));

en el archivo descargar.php donde tengo puesto lo anterior, tambien tengo puesto con include() un archivo que se llama phpdebug.php

cuando pruebo el codigo en vez de descargar el archivo que le indico al header, me descarga el archivo que esta en el include, y si saco el archivo include, me descarga el mismo archivo descargar.php pero con el nombre del archivo que quiero descargar,

esta mas que claro que hay algo que estoy haciendo mal o que no estoy haciendo porque no tengo el conocimiento,

alguien me puede dar una ayuda?

gracias
  #2 (permalink)  
Antiguo 18/06/2012, 13:43
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

Deberías colocar el código completo, cómo recibes el $archNom por ejemplo, para poder ver el fallo.
  #3 (permalink)  
Antiguo 18/06/2012, 13:48
 
Fecha de Ingreso: julio-2011
Mensajes: 108
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

el $archNom lo paso de la siguiente manera

paso por get un ID con ese id hago una consulta a una base de datos y me devuelve la ruta del archivo.

../carpeta/archivo.ext.

yo probe poniendo $archNomb asi como esta en la bd, poniendo solo el nombre de archivo, y poniendo la ruta completa http://www.dominio.com.ar/carpeta/archivo.ext

si necesitas mas informacion, avisa

gracias
  #4 (permalink)  
Antiguo 18/06/2012, 14:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

Deberías de poner el código tal cual lo pones, ten en cuenta que lo que pongas después del header() es lo que va a ser enviado al cliente para descargarlo.

Saludos.
  #5 (permalink)  
Antiguo 18/06/2012, 14:33
 
Fecha de Ingreso: julio-2011
Mensajes: 108
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

gracias por la colaboración, ya lo pude solucionar poniendo esto:

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($arch));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($arch));
ob_clean();
flush();
readfile($arch);
exit;
  #6 (permalink)  
Antiguo 06/07/2012, 14:28
 
Fecha de Ingreso: marzo-2012
Ubicación: ENSENADA BC
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

hola me sirvió mucho este código para una lista de impresión que estoy haciendo pero necesito que se repita unas 4 veces tengo estro dentro de un while pero solo hace la operación una vez como puedo hacerla para que se repita el numero de veces necesario
  #7 (permalink)  
Antiguo 06/07/2012, 14:34
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 10 meses
Puntos: 128
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

Hola romina por favor crea un post para lo que necesitas, en vez de utilizar while utiliza un for.

Saludos.


__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #8 (permalink)  
Antiguo 06/07/2012, 14:35
 
Fecha de Ingreso: marzo-2012
Ubicación: ENSENADA BC
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

hola me sirvió mucho este código para una lista de impresión que estoy haciendo pero necesito que se repita las veces que indique el usuario(osea que si realiza 3 búsquedas descargue los tres archivos ) tengo estro dentro de un while pero solo hace la operación una vez, como puedo hacerla para que se repita el numero de veces necesario


este es mi codigo de busqueda tengo 5 campos


echo"<form id=\"form1\" name=\"form1\" method=\"post\" action=\"report1_1.php\">"
. " <table width=\"100\" border=\"0\""
. " <td width=\"100\"><label for=\"numeroultimo\">"
. " <input type=\"text\" name=\"numeroultimo\" id=\"numeroultimo\" />"
. " </label></td>"
//. " <td width=\"50\"><input type=\"submit\" name=\"search\" id=\"search\" value=\"Search\" /></td>"
. " </tr>"
. " <td width=\"100\"><label for=\"numeroultimo2\">"
. " <input type=\"text\" name=\"numeroultimo2\" id=\"numeroultimo2\" />"
. " </label></td>"
. " </tr>"

. " </tr>"
. " <td width=\"100\"><label for=\"numeroultimo3\">"
. " <input type=\"text\" name=\"numeroultimo3\" id=\"numeroultimo3\" />"
. " </label></td>"
. " </tr>"

. " </tr>"
. " <td width=\"100\"><label for=\"numeroultimo4\">"
. " <input type=\"text\" name=\"numeroultimo4\" id=\"numeroultimo4\" />"
. " </label></td>"
. " </tr>"

. " </tr>"
. " <td width=\"100\"><label for=\"numeroultimo5\">"
. " <input type=\"text\" name=\"numeroultimo5\" id=\"numeroultimo5\" />"
. " </label></td>"
. " </tr>"


. " </tr>"
. " <td>&nbsp;</td>"

. " <td width=\"50\"><input type=\"submit\" name=\"search\" id=\"search\" value=\"Search\" /></td>"
. " </tr>"
. "";



y este es donde los encuentra o despliega


if($_REQUEST['numeroultimo'] ==""){$identificacion=0;} else {$identificacion=$_REQUEST['numeroultimo']; }
if($_REQUEST['numeroultimo2']==""){$identificacion2=0;}else{$identificacion2=$_ REQUEST['numeroultimo2']; }
if($_REQUEST['numeroultimo3']==""){$identificacion3=0;}else{$identificacion3=$_ REQUEST['numeroultimo3']; }
if($_REQUEST['numeroultimo4']==""){$identificacion4=0;}else{$identificacion4=$_ REQUEST['numeroultimo4']; }
if($_REQUEST['numeroultimo5']==""){$identificacion5=0;}else{$identificacion5=$_ REQUEST['numeroultimo5']; }

$bandera_color=0;
$registros2=mysql_query("select file1_url,file1_nombre,npart,num from cofc2 where npart='$identificacion' or npart='$identificacion2' or npart='$identificacion3' or npart='$identificacion4' or npart='$identificacion5'"
,$conexion) or die("Problemas en el select:".mysql_error());

while ($reg2=mysql_fetch_array($registros2)){
if($bandera_color==0) {
$color="#CCCCCC";
$bandera_color=1;
}
else {
$color="#FFFFFF";
$bandera_color=0;
}

if($reg2['npart']===$identificacion or $reg2['npart']===$identificacion2 or $reg2['npart']===$identificacion3 or $reg2['npart']===$identificacion4 or $reg2['npart']===$identificacion5){


$arch ="".$reg2['file1_url']."";


header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($arch));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($arch));
ob_clean();
flush();
readfile($arch);

exit;

//esto era donde mostraba las consultas pero no necesito que las muestre ya que son attasment y necesito que //los abra en un archivo aparte y los mande a una fila de impresion

echo "<table width=\"180\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\">"

. " <td width=\"10\" bgcolor=\"$color\">".$reg2['npart']."</td>"
. " <td> <a href=\"javascript:poponload('".$reg2['file1_url']."')\">".$reg2["file1_nombre"]."</a></td>"
. " </tr>";


}
}
  #9 (permalink)  
Antiguo 06/07/2012, 14:37
 
Fecha de Ingreso: marzo-2012
Ubicación: ENSENADA BC
Mensajes: 6
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Descargar Archivos con Php desde el Servidor a la PC

ok lo intentare gracias hay que amables son en este foro me cae :D

Etiquetas: header
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:10.