Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/04/2013, 08:15
Avatar de cuasatar
cuasatar
 
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: descargar archivos de una base de datos

En este proyecto realizan lo que tu necesitas, explican tanto subirlo a la base de datos como recuperarlo.

http://gssdms.sourceforge.net/

Yo tenía el código original pero como lo modifique para que no fuera tipo blob la subida de archivos no lo tengo a la mano.

Si quieres lo puedes instalar y usar o basarte en este para lograr tu solución.

(Tengo que aclarar que cuando lo use por primera vez tenia unos errores el codigo fuente pero si tienes paciencia lo puedes arreglar y hacerlo funcionar)

El codigo es viejo (2005) pero parece que le hicieron cambios recientes.

Código PHP:
<?php
#####################################################################
# NAME/ PURPOSE - this file is used to download the file the user
#      has selected.
#
# STATUS - Done
#
# LAST MODIFIED - 02/11/2005
#
# TO DO - nothing. done.
#
# NOTE: Due to the nature of this program being an open-source project,
#       refer to the project website https://sourceforge.net/projects/gssdms/
#        for the most current status on this project and all files within it
#
#####################################################################

require('lib/config.inc');
require(
'lib/auth.inc');
require(
'lib/classes.inc');
require(
'lib/functions.inc');

global 
$cfg;

$tmp explode("/"$REQUEST_URI);
$doc_id $tmp[sizeof($tmp)-2];

@
mysql_connect($cfg[server], $cfg[user], $cfg[pass]) or die("Unable to connect to MySQL server");
@
mysql_select_db($cfg[db]) or die("Unable to select $cfg[db] database");

$user = new user($login);

if( 
may_read($user->id,$doc_id) ) {
    
$res = @mysql_query("SELECT d.id AS id,d.name AS name,d.type AS type,d.size AS size,c.content AS content FROM documents AS d LEFT JOIN documents_content AS c ON d.id=c.id WHERE d.id=$doc_id");
    
$row = @mysql_fetch_array($res);
    
header("Content-Type: $row[type]");
    print(
""base64_decode($row[content]) ."");
    exit;
}

print_header("Permission Denied");
print(
"<h1>Permission denied</h1>\n");
print(
"<p>You are not permitted to access this file.</p>");
print_footer();
?>
Si subiste los datos con base64_encode pues toca decodificarlos como puedes ver con base64_decode. Esto lo obtuve del dms que te comente. Seguro con eso logras lo que necesitas.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 09/04/2013 a las 08:26