Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/02/2011, 20:44
Avatar de jonasanx
jonasanx
 
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: ayuda con este codigo...

Me intereso el tema, así que hice un script basándome en el suyo para subir imágenes a la base de datos.

SQL
Código SQL:
Ver original
  1. CREATE TABLE  `base_datos`.`imagenes` (
  2. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `content` LONGBLOB NOT NULL ,
  4. `type` VARCHAR( 10 ) NOT NULL
  5. ) ENGINE = MYISAM ;

cargar.html
Código HTML:
Ver original
  1. <form action="procesar.php" method="post" enctype="multipart/form-data">
  2.     <label>Seleccione la imagen a subir</label>
  3.     <input type="file" name="imagen" />
  4.     <input type="submit" name="cargar" value="Subir"/>
  5. </form>

conexion_db.php
Código PHP:
<?php
/**
 * Genera el enlace a la base de datos
 * para futuras consultas.
 */
if(!isset($conexion)){
    
$conexion FALSE;
}

/**
 * Realizar la conexion a la base de datos
 */
function conexionDB(){
    global 
$conexion;
    
    if( 
$conexion 
        return 
$conexion;
    
    
// Variables a sustituir
    
$servidor 'localhost';
    
$usuario 'root';
    
$clave '';
    
$base_datos 'base_datos'
    
    
$conexion mysql_connect($servidor$usuario$clave) or die("Imposible conectar a MYSQL");
    
mysql_select_db($base_de_datos$conexion);
    
    return 
$conexion;
}

/**
 * Termina la conexion a la base de datos;
 */
function terminarConexionDB(){
        global 
$conexion;
        
        if( 
$conexion != FALSE )        
            
mysql_close($conexion);
            
        
$conexion FALSE;
}
?>
procesa.php
Código PHP:
<?php
include_once ('conexion_db.php');

// Verifica que se ha enviado el formulario
if(!(isset($_POST["cargar"])))
    exit();

$tmpName $_FILES["imagen"]["tmp_name"];
$type $_FILES['imagen']['type'];

// Carga archivo temporal
$fopen fopen($tmpName"r");
$file fread($fopenfilesize($tmpName));
$content addslashes($file);
fclose($fopen);

// Conecta a base de datos
conexionDB();

// Sube imagen a la base de datos
$query mysql_query("INSERT INTO base_datos.imagenes (content, type) VALUES ('$content', '$type')"$conexion);

if(
mysql_errno($conexion)){
    print 
mysql_errno($conexion);
}else{
    print 
'Se ha subido la imagen a la base de datos, puedes verla pulsando <a href="imagen.php?id='.mysql_insert_id().'">aqui</a>';
}

// Cierra base de datos
terminarConexionDB();
?>
imagen.php
Código PHP:
<?php
if(!isset($_GET['id']))
    exit();

include_once (
'conexion_db.php');

$id $_GET['id'];

// Conecta a base de datos
conexionDB();

$query mysql_query("SELECT * FROM base_datos.imagenes WHERE id = $id"$conexion);

// Cierra base de datos
terminarConexionDB();

$row mysql_fetch_object($query);

header('Content-type: $row->type');
print 
$row->content;


?>
Creo que es innecesario decir que es un script bastante básico, falta validar muchas cosas y tratar errores... en fin, espero que le sirva.

Última edición por jonasanx; 09/02/2011 a las 20:57