Foros del Web » Programando para Internet » PHP »

Descargar un archivo en vez de abrirlo

Estas en el tema de Descargar un archivo en vez de abrirlo en el foro de PHP en Foros del Web. Necesito un script que obligue al navegador a descargar un archivo .php en vez de abrirlo como haría normalmente. Gracias...
  #1 (permalink)  
Antiguo 16/06/2004, 14:11
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Descargar un archivo en vez de abrirlo

Necesito un script que obligue al navegador a descargar un archivo .php en vez de abrirlo como haría normalmente.

Gracias
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #2 (permalink)  
Antiguo 16/06/2004, 17:11
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
pues quitale la linea: AddType application/x-httpd-php .php al httpd.conf de apache, es la unica forma, pero cualquier archivo php en ese servidor estara podra descargarse.
  #3 (permalink)  
Antiguo 16/06/2004, 17:32
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Mmmm... esa solución no me vale ya que esto solo quiero hacerlo con un par de archivos. Hace tiempo creo que vi esto que me hace falta pero no estoy seguro jeje...

De todas maneras gracias por el interés, a ver si hay alguien que de con lo que pido :p

Saludos!
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #4 (permalink)  
Antiguo 16/06/2004, 17:34
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
es facil, comprimelo en un zip y ofrecelo asi
  #5 (permalink)  
Antiguo 16/06/2004, 18:27
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
No puedo comprimirlo en zip porque es un archivo que se actualiza cada cierto tiempo y necesito descargarlo asi... Os explico: tengo un sistema de noticias que almacena los datos en ficheros .php en vez de en BDs MySql y quiero poner un link para descargar esos archivos cuando quiera a modo de "backup", no se si me explico
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #6 (permalink)  
Antiguo 16/06/2004, 18:39
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
tal ver podria funcionar esto:

descarga.php
<?
$fp = fopen("noticias.php", "rb");
$contenido = fread($fp, filesize("noticias.php"));
fclose($fp);

header("Content-type: application/zip");
header("Content-Disposition: ; filename=\"noticias.htm\"");
$contenido
?>

esta medio loco pero podrias intentarlo
  #7 (permalink)  
Antiguo 17/06/2004, 00:27
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
este es un force download ke me enkontre por ahi, no lo he probado

Código:
<?
/* Para usar es archivo.php?filename=archivo.extension */
$shortname = basename( $filename );
if( file_exists( $filename )        
    && !eregi( "p?html?", $filename ) 
    && !eregi( "inc", $filename )
    && !eregi( "php3?", $filename ) ){
  $size = filesize( $filename ); 
  header("Content-Type: application/save"); 
  header("Content-Disposition: attachment; filename=".$shortname); 
  $fh = readfile($filename);
	fpassthru($fh);
	 
  exit; 
} else {
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD 4.01 Transitional//EN"
   "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Download Error</title>
 <style type="text/css">
   <!--
   body {background-image:url(include/background.gif);
         font-family:helvetica,arial,sans-serif}
   a:hover {text-decoration:none; border-width:thin; border-style:dotted;
            background-color:#f2f2ff; color:#000000}
   a:focus {text-decoration:none; background-color:#dadae6; color:#000000}
   a:active {text-decoration:none; background-color:#ffffff; color:#000000}
   -->
 </style>
</head>
<body>
<h1>File <?php print( $basename ) ?> not available</h1>
<p>
  Either the file you requested does not exist or you are not permitted to
  download it using this page.
</p>
</body>
</html>
<?php
}
?>


</body>
</html>
__________________
El que teme preguntar, se averguenza de aprender.
  #8 (permalink)  
Antiguo 16/08/2004, 10:15
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Al final lo he hecho utilizando este código:


Código PHP:
<?php
$file
="archivo.php";
header("Content-type: application/octet-stream\n");
header("Content-Disposition: attachment; filename=\"$file\"\n");
header("Content-transfer-encoding: binary\n");    
header("Content-length: " filesize("$file") . "\n");
$fp=fopen("$destino/$file""r");
fpassthru($fp);
?>
Gracias a todos por la ayuda
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #9 (permalink)  
Antiguo 16/08/2004, 10:21
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
valla, quien diria que era tan facil, solo era cuestion de buscarle, ahora te deberias de preocupar de que nadie mas pueda bajarlo, haciendo una validacion de usuario.
  #10 (permalink)  
Antiguo 16/08/2004, 11:00
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Antes de llegar a la página en la que está el link para bajar los backups tienes que pasar por una que te pregunta el nombre de usuario y la clave asi que por eso no hay problema... jejeje

Saludosss
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #11 (permalink)  
Antiguo 16/08/2004, 11:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. Dahn .. si accedo directamente a ese script igual se va a poder descargar el archivo salvo que de tu "login" pase a este script y por médio hagas el seguimiento del usuario creando/validando variables de sesión o cookies (recomendable sesiones).

Es decir .. " de nada sirve tener una puerta .. si al lado no hay muros que no dejen entrar sólo por tu puerta" ...

Un saludo,
  #12 (permalink)  
Antiguo 16/08/2004, 11:37
 
Fecha de Ingreso: noviembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 249
Antigüedad: 20 años, 5 meses
Puntos: 2
recordemos que si por las moscas algun robot de algun buscador encuentra un enlace a tu archivo y lo añade, este estaria disponible para muchos usuarios... este es ya conocido por varios y sabesmos que sucede.. lo mejor es usar, como te recomientan Sesiones o Cookies...
__________________
Crea tu Foro Gratis
Portal Tabasco
  #13 (permalink)  
Antiguo 17/08/2004, 18:32
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Pufff... tenéis razón... aun asi creo que no tiene mucha importancia que se bajen ese archivo pero otros que tengo como uno que almacena el user y el pass si sería malo que lo viesen...

Hay alguna solución que no sea la de las cookies? algo con el .htaccess?
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
  #14 (permalink)  
Antiguo 17/08/2004, 18:33
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Ahora que lo miro... en ese .php que os digo el usuario y la clave estan almacenados como una variable y al acceder al archivo mediante el navegador no aparece nada, sale como si el fichero estuviese en blanco... hay algun riesgo de que se pueda saber lo que contiene?

Gracias
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.
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 17:56.