FAQ
Que tal compañeros. Tengo problemas a la hora de insertar una imagen en un
campo blob de mi base de datos. No me acaba de funcionar.
Supongamos que tengo un formulario html con un campo file de nombre
(name="Archivo").
Luego en el código php tengo que recoger esa imagen supongo haciendo un
fopen de $_FILES["Archivo"]["tmp_name"]... o es de
$_FILES["Archivo"]["name"]?, con el modo "r" para leerlo solamente.
Despues de esto tengo que leer el archivo con fread("nombre del manejador",
filesize($_FILES["Archivo"]["tmp_name"])).
Y por ultimo hago la consulta MySQL y... que variable tengo que depositar en
mi campo blob?
Como veis creo que tengo la idea clara pero necesito un poco de ayuda con
los archivos que tengo que recibir "tmp_name" o "name" y luego con la
variable que debo utilizar para insertar el archivo en mi campo blob de la
base de datos. Gracias.

Search Discussions

  • Manuel González Noriega at May 23, 2004 at 1:28 pm

    El dom, 23-05-2004 a las 14:24, Massivo escribió:
    de
    $_FILES["Archivo"]["name"]?, con el modo "r" para leerlo solamente.
    Despues de esto tengo que leer el archivo con fread("nombre del manejador",
    filesize($_FILES["Archivo"]["tmp_name"])).
    Y por ultimo hago la consulta MySQL y... que variable tengo que depositar en
    mi campo blob?
    Pues la que contiene el archivo. Es decir, a la que hayas devuelto
    fread()
    --
    Manuel trabaja para Simplelógica, construcción web
    (+34) 985 22 12 65 http://simplelogica.net
  • Manuel González Noriega at May 23, 2004 at 2:10 pm

    El dom, 23-05-2004 a las 15:28, Manuel González Noriega escribió:
    El dom, 23-05-2004 a las 14:24, Massivo escribió:
    Pues la que contiene el archivo. Es decir, a la que hayas devuelto
    fread()
    Se me olvido decir que quizás quieras codificarla en base64

    http://es2.php.net/base64_encode

    --
    Manuel trabaja para Simplelógica, construcción web
    (+34) 985 22 12 65 http://simplelogica.net
  • Massivo at May 23, 2004 at 2:23 pm
    Gracias Manuel, es lo que estaba haciendo hasta ahora pero no me funciona.
    Pongo el código para ver si alguien me indica donde esta el error.
    Primero hago todas las comprobaciones para asegurarme de que el visitante
    introduce una imagen en el campo llamado "Archivo" (en el formulario html) y
    luego, en la pagina php hago lo siguiente:
    $Archivo = $_FILES["Archivo"]["tmp_name"];
    $Manejador = fopen($Archivo, "r");
    $ContenidoArchivo = fread($Manejador, filesize($Archivo));
    $fclose($Manejador);

    Acto seguido introduzco los valores en la base de datos mediante esta
    consulta:
    $Consulta = "INSERT into $NombreTabla values('$ContenidoArchivo')";

    Alguien ve algun error aqui? he hecho un resumen del codigo poniendo solo lo
    necesario. Hay mas valores que introduzco en la base de datos y todo
    funciona a la perfeccion, a excepcion de la imagen, osea que la conexion y
    todo lo demas esta bien.
    Por cierto, el campo que tengo reservado en la base de datos para ese valor
    es un "mediumblob". Puede ser este el fallo? Gracias.


    "Manuel González Noriega" <manuel@simplelogica.net> escribió en el mensaje
    news:1085318895.2532.0.camel@cmr-212-89-18-131.telecable.es...
    El dom, 23-05-2004 a las 14:24, Massivo escribió:
    de
    $_FILES["Archivo"]["name"]?, con el modo "r" para leerlo solamente.
    Despues de esto tengo que leer el archivo con fread("nombre del
    manejador",
    filesize($_FILES["Archivo"]["tmp_name"])).
    Y por ultimo hago la consulta MySQL y... que variable tengo que
    depositar en
    mi campo blob?
    Pues la que contiene el archivo. Es decir, a la que hayas devuelto
    fread()
    --
    Manuel trabaja para Simplelógica, construcción web
    (+34) 985 22 12 65 http://simplelogica.net
  • Manuel González Noriega at May 23, 2004 at 10:33 pm
    El
    Acto seguido introduzco los valores en la base de datos mediante esta
    consulta:
    $Consulta = "INSERT into $NombreTabla values('$ContenidoArchivo')";
    Si tu tabla tiene más de un campo, que supongo que sí, entonces deberías
    especificar en cual quieres insertar.

    Por lo demás, puedes utilizar la función mysql_error() para ver que
    problema estás teniendo. O bien recurrir al artesanal método de hacer
    echo y ejecutar la consulta directamente en la bd




    --
    Manuel trabaja para Simplelógica, construcción web
    (+34) 985 22 12 65 http://simplelogica.net
  • Rolan Benavent at May 23, 2004 at 2:29 pm
    Yo utilizo esto:

    $temp=fopen($archivo,"rb");
    $buffer=gzcompress(fread($temp,filesize($archivo)),9);
    fclose($temp);
    $select="insert into Fotos(Id,Nombre,Tipo,Foto)".
    "
    values($Id,'".addslashes($nomfoto)."','$fichfoto_type','".addslashes($buffer
    )."')";
    if($rs=mysql_query($select)){....


    Rolan.


    ----- Original Message -----
    From: "Massivo" <massivo2002@hotmail.com>
    To: <php-es@lists.php.net>
    Sent: Sunday, May 23, 2004 2:24 PM
    Subject: [PHP-ES] Insertar una imagen en MySQL.

    Que tal compañeros. Tengo problemas a la hora de insertar una imagen en un
    campo blob de mi base de datos. No me acaba de funcionar.
    Supongamos que tengo un formulario html con un campo file de nombre
    (name="Archivo").
    Luego en el código php tengo que recoger esa imagen supongo haciendo un
    fopen de $_FILES["Archivo"]["tmp_name"]... o es de
    $_FILES["Archivo"]["name"]?, con el modo "r" para leerlo solamente.
    Despues de esto tengo que leer el archivo con fread("nombre del
    manejador",
    filesize($_FILES["Archivo"]["tmp_name"])).
    Y por ultimo hago la consulta MySQL y... que variable tengo que depositar en
    mi campo blob?
    Como veis creo que tengo la idea clara pero necesito un poco de ayuda con
    los archivos que tengo que recibir "tmp_name" o "name" y luego con la
    variable que debo utilizar para insertar el archivo en mi campo blob de la
    base de datos. Gracias.

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedMay 23, '04 at 12:24p
activeMay 23, '04 at 10:33p
posts6
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase