Foros del Web » Programando para Internet » PHP »

Cambiar el nombre del fichero al descargarlo!

Estas en el tema de Cambiar el nombre del fichero al descargarlo! en el foro de PHP en Foros del Web. Saludos a toda la comunidad! Bueno, la pregunta del dia de hoy es la siguiente, estoy realizando una aplicacion en PHP donde por medio de ...
  #1 (permalink)  
Antiguo 26/11/2004, 10:27
Avatar de heberto  
Fecha de Ingreso: septiembre-2004
Ubicación: Morelia, Michoacán
Mensajes: 104
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta Cambiar el nombre del fichero al descargarlo!

Saludos a toda la comunidad!

Bueno, la pregunta del dia de hoy es la siguiente, estoy realizando una aplicacion en PHP donde por medio de codigo descargo un fichero zip que se encuentra en una base de datos de MySQL, todo funciona muy bien, solo tengo un ligero detalle, como cambiar el nombre al momento de descargarlo, ya que en realidad no coloca el nombre con el cual se subio al servidor y toma el nombre de la pagina mas su respectiva extencion ZIP, el archivo se baja muy bien, contiene exactamente lo que se subio, pero ese es el unico detalle.

mi codigo es el siguiente....

Driver_zip.php

Código PHP:
<?php 
    
//Cabeceras para descarga del fichero 
    
header("Content-Type:application/x-zip-compressed"); 
    
header("Content-Transfer-Encoding: base64"); 
    require_once(
'../../Connections/zonazero.php'); 
?> 

<?php 
//Busqueda en la base de datos (codigo generado por Dreamweaver) 
$colname_rsArchivo "1"
if (isset(
$_GET['Id_drivers'])) { 
  
$colname_rsArchivo = (get_magic_quotes_gpc()) ? $_GET['Id_drivers'] : addslashes($_GET['Id_drivers']); 

    
mysql_select_db($database_zonazero$zonazero); 
    
$query_rsArchivo sprintf("SELECT Nombre, Archivo FROM drivers WHERE Id_drivers = %s"$colname_rsArchivo); 
    
$rsArchivo mysql_query($query_rsArchivo$zonazero) or die(mysql_error()); 
    
$row_rsArchivo mysql_fetch_assoc($rsArchivo); 
    
$totalRows_rsArchivo mysql_num_rows($rsArchivo); 
     
    
//Obtengo los valores de la base de datos 
    
$Nombre=$row_rsArchivo['Nombre']."zip"
    
$Archivo=$row_rsArchivo['Archivo']; 

    
//Impresion del fichero a descargar 
    
echo $Archivo

mysql_free_result($rsArchivo); 
?>
Este codigo me da como resultado la descarga del fichero "Driver_zip.zip" osease que toma el nombre de la pagina.

Ya probe con la siguiente cabecera antes de mandar imprimir el contenido del archivo pero nada, sigue igual

Código PHP:
header("Content-Disposition: attachment; filename='".$Nombre."'"); 
Me pueden decir como colocar el nombre del fichero, si tengo que poner algo en las cabeceras o que onda.

Gracias por su atencion, nos leeremos pronto
__________________
Atte.

Ing. Julio Heberto Gonzalez Morales
Certified Macromedia Flash MX Designer
  #2 (permalink)  
Antiguo 26/11/2004, 11:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En teoría la cabecera HTTP que decide el nombre que se va a ofrecer para el archivo a descargar es:

header("Content-Disposition: attachment; filename=".$Nombre.");

(pruebalo sin '' comillas simples .. De todas formas esa definición la dá el protocolo HTTP no PHP .. por si quieres ver sobre el tema)

Un saludo,
  #3 (permalink)  
Antiguo 26/11/2004, 17:00
Avatar de heberto  
Fecha de Ingreso: septiembre-2004
Ubicación: Morelia, Michoacán
Mensajes: 104
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación

Nop, tampoco quiere :(, tienes algun ejemplo que baje un archivo ZIP con su respectivo nombre?
__________________
Atte.

Ing. Julio Heberto Gonzalez Morales
Certified Macromedia Flash MX Designer

Última edición por heberto; 26/11/2004 a las 17:01
  #4 (permalink)  
Antiguo 26/11/2004, 19:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En las FAQ's tienes un ejemplo completo para descargar archivos incluso con opciòn "resume" por si usas algún gestor de descargas. Ahì usa bastantes cabeceras HTTP que puedes estudiar.

En la ducumentación oficial de header() también veras ejemplos (sobre todo en los comentarios de los usuarios de dicha función):

www.php.net/header


Un saludo,
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 07:10.