Deseo hacer una página, la cual me pertima subir archivos de tipo .rar o .zip, con algunos datos como el nombre y fecha, pero guardar estos archivos en una base de datos, es decir, el campo para los archivos .rar o .zip son del tipo MediumBlob.
Tomé un codigo que utilice para subir imagenes, y me anda bien, es decir, puedo subir los archivos con sus datos a la base de datos, tambien tengo la pagina que hace la consulta a dicha base de datos y me genera una lista de estos para que sean descargados, el problema esta, en que cuando le doy descargar, en vez de mostrar por ejemplo : NombreDelArchivo.RAR preguntandome donde deseo guardarlo, me muestra para guardar la pagina PHP de descargar, es decir, descargar.php , algo esta fallando en cuanto a la descarga de los archivos.
LEs dejo el link para que puedan chequear lo que digo: http://www.labunab.com/listar_archivos.php
Aqui van los codigos que estoy utilizando:
Formulario:
Código HTML:
 <form enctype="multipart/form-data" action="guardar_archivo.php" method="post"> Descripción <input type="text" name="titulo" size="30"> Ubicación <input type="file" name="archivito"> <input type="submit" value="Enviar archivo"> </form>
Código PHP:
   <?php 
$conn = mysql_connect("localhost","xxx","xxx"); 
mysql_select_db("xxx");
 
$archivo = $_FILES["archivito"]["tmp_name"]; 
$tamanio = $_FILES["archivito"]["size"];
$tipo    = $_FILES["archivito"]["type"];
$nombre  = $_FILES["archivito"]["name"];
$titulo  = $_POST["titulo"];
 
 if ( $archivo != "none" )
 {
    $fp = fopen($archivo, "rb");
    $contenido = fread($fp, $tamanio);
    $contenido = addslashes($contenido);
    fclose($fp); 
 
    $qry = "INSERT INTO archivo VALUES 
            (0,'$nombre','$titulo','$contenido','$tipo')";
 
    mysql_query($qry);
 
    if(mysql_affected_rows($conn) > 0)
       print "Se ha guardado el archivo en la base de datos.";
    else
       print "NO se ha podido guardar el archivo en la base de datos.";
 }
 else
    print "No se ha podido subir el archivo al servidor";
?>    Código PHP:
   <?php 
$conn = mysql_connect("xxx","xxx","xxx"); 
mysql_select_db("xxx");
 
$qry = "SELECT id, nombre, titulo, tipo FROM archivo";
$res = mysql_query($qry);
 
while($fila = mysql_fetch_array($res))
{
print "$fila[titulo]
<br>
$fila[nombre] ($fila[tipo])
<br>
<a href='descargar_archivo.php?id=$fila[id]'>Descargar</a>
<br>
<br>";
}
?>    Código PHP:
   <?
$conn = mysql_connect("xxx","lxxx","xxx"); 
mysql_select_db("xxx");
 
$id = $_GET['id']; 
$qry = "SELECT tipo, contenido, nombre FROM archivo WHERE id=$id";
$res = mysql_query($qry);
$tipo = mysql_result($res, 0, "tipo");
$contenido = mysql_result($res, 0, "contenido");
$nombre = mysql_result($res, 0, "nombre");
 
 header("Content-type: $tipo");
 print $contenido; 
?>    
 


Este tema le ha gustado a 1 personas