Foros del Web » Programando para Internet » PHP »

Ayuda con descargas

Estas en el tema de Ayuda con descargas en el foro de PHP en Foros del Web. Hola, ante todo gracias por la ayuda. Tengo una base de datos mysql, la tabla con la que trabajo (peticion) tiene dos campos: IDENT -> ...
  #1 (permalink)  
Antiguo 15/05/2005, 05:48
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Ayuda con descargas

Hola, ante todo gracias por la ayuda.

Tengo una base de datos mysql, la tabla con la que trabajo (peticion) tiene dos campos:

IDENT -> integer clave primaria
PKCS -> fichero pkcs de certificados de usuario y clave, varchar (2000).

lo que quiero hacer, es una página descarga.php tal que al ir al link: descarga.php?ident=14

se le descargue al usuario que ha accedido a dicha web automaticamente el fichero pkcs de la base de datos correspondiente a esa ident.

Lo he intentado descargar mediante:

<?

function Descargar($ElFichero){

header( "Content-Type: application/x-pkcs12");
header( "Content-Length: ".filesize($ElFichero));
header( "Content-Disposition: attachment; filename=".$ElFichero."");
readfile($ElFichero);
}


$conn = mysql_connect("localhost:3306", "user", "2342") or die ("Error conectando");
mysql_select_db("redesav",$conn) or die ("Error seleccionando la base de datos");
$ident=$_GET["ident"];

$ssql = "SELECT pkcs FROM peticion WHERE ident='$ident'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn) or die ("Error con la base de datos");
if ($row=mysql_fetch_array($rs)){
Descargar($row["pkcs"]);
}
else { echo "Error";}
?>


y lo unico que consigo es que se me descargue la página "descarga.php", no consigo descargar el fichero.

Cualquier ayuda se lo agradezco!! un saludo.
  #2 (permalink)  
Antiguo 15/05/2005, 06:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Prueba con:
Código PHP:
function Descargar($file){ 
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
// header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename=' basename($file));
readfile($file); 

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 15/05/2005, 06:39
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
tampoco me funciona asi, me pone un nombre raro en la descarga ahora "~3*#" o del estilo, y se me descarga un fichero de 250bytes de tipo desconocido :(

muchas gracias de todas formas
  #4 (permalink)  
Antiguo 15/05/2005, 20:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... ¿cómo tienes tus datos en tu Base de datos??

Si abres ese archivo con el block de notas.. ¿el código fuente no tiene que ver con dicho archivo? .. ¿sí le cambias la extención??.. vaya!, busquemos cuál es el problema...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 16/05/2005, 06:24
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 13 años, 4 meses
Puntos: 0
Simplemente le pasas la id del archivo a bajar y haces una búsqueda en tu bd con esa variable:
Código PHP:
<?php



if (isset($id)){
    require(
"conexion.php");
    
$query "SELECT * FROM tubd WHERE tunombredefila LIKE '$id'";
    
$result mysql_query($query);
    
$fila=mysql_fetch_object($result);
    
$request $fila->nombrefilaarchivoenbase;
    
    if (!
$request) {
        echo (
"Error en url");
    }
    else { 

    
header("Location: direcciondelarchivo/$request"); 

    }
?>
Es recomendable autentificar al usuario antes de la descarga y poner htacess en la carpeta donde tengas ese archivo para evitar descargas externas.
Salu2.
  #6 (permalink)  
Antiguo 16/05/2005, 08:10
 
Fecha de Ingreso: mayo-2005
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Gracias! probare esta noche todo y os cuento, muchas gracias de verdad.
  #7 (permalink)  
Antiguo 16/05/2005, 18:51
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por adimensional
Simplemente le pasas la id del archivo a bajar y haces una búsqueda en tu bd con esa variable:
Pero eso sería como crear un link directo al archivo... el tema aquí (creo entender) es forzar a la descarga. Si tu llamas directamente a un archivo y éste tiene algún interprete, el archivo tratará de abrirse.. no de descragarse... Sucede por ejemplo con archivos de imágenes, .doc, .pdf, .mp3, ... etc.

Ahora que si los archivos son de una extención que no tiene una aplicación asociada... Vuelvo a preguntar ¿de qué forma están esos archivos??.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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:24.