Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Almacenar imagenes en MySQL

Estas en el tema de Almacenar imagenes en MySQL en el foro de Bases de Datos General en Foros del Web. Segun tengo entendido para almacenar imagenes en MySQL solo almaceno la ruta de la imagen. Ahora, tengo un pequeño problema, a traves de un formulario ...
  #1 (permalink)  
Antiguo 23/12/2003, 15:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 61
Antigüedad: 21 años
Puntos: 0
Almacenar imagenes en MySQL

Segun tengo entendido para almacenar imagenes en MySQL solo almaceno la ruta de la imagen. Ahora, tengo un pequeño problema, a traves de un formulario con su respectivo INPUT type="file" agrego la ruta, C:\tmp\img.jpg, pero en la base me aparece esto C:tmpimg.jpg sin las barras invertidas. Alguien me puede ayudar, a que se debe esto?. Existe otra forma de almacenar las imagenes?. Por qué desaparecen las barras?.

Gracias de antemano.
  #2 (permalink)  
Antiguo 26/12/2003, 12:55
 
Fecha de Ingreso: noviembre-2003
Mensajes: 11
Antigüedad: 21 años
Puntos: 0
Ummm pos te voy a responder un poco a ciegas, pero a lo mejor si en vez de una barra \ le pones 2 \\ te pone, una es decir la 1ª solo le advierte de que a continuacion viene un caracter especial... Prueba, no te lo aseguro en C++ es asi.

Si me equivoco que alguien me corrija.
  #3 (permalink)  
Antiguo 27/12/2003, 15:15
 
Fecha de Ingreso: noviembre-2003
Mensajes: 61
Antigüedad: 21 años
Puntos: 0
Autorespuesta

Consegui solucionar esto así:

$imagen=str_replace("\\","/",$imagen);

P.D: Así no sirve:

$imagen=str_replace("\","/",$imagen);

Espero que alguien me pueda explicar a que se debe eso de las barras invertidas.
  #4 (permalink)  
Antiguo 29/12/2003, 00:06
 
Fecha de Ingreso: diciembre-2003
Ubicación: Tuc - Argentina
Mensajes: 21
Antigüedad: 20 años, 11 meses
Puntos: 0
Probaste guardar las imágenes como BLOBs es un tipo de dato (Binary Large Object ...). No se mucho de eso pero se que se puede hacer con MySQL. Tengo algo q leí por ahí si te interesa. mandame un mail a [email protected]
  #5 (permalink)  
Antiguo 05/01/2004, 08:29
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 10 meses
Puntos: 2
RE: Almacenar imágenes en MYSQL

Para subir una imágen y almacenarla en MYSQL, lo mejor que puedes hacer es un formulario:

<form enctype="multipart/form-data" action="guardar.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
TITULO: <input type="text" name="nov_titulo">
CONTENIDO: <input type="text" name="nov_texto">
SUBIR ESTA IMAGEN: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>

Presta atención a "enctype=...", esto te permite enviar archivos mediante el method, en este caso POST, el action es guardar.php, en este script pondremos lo sig:

<?
require "config-inc.php";
//nombre de usuario de la base de datos, password, etc.
?>
<?php
$dbconexion = mysql_connect($dbconfig["localhost"],$dbconfig["user"],$dbconfig["password"]) or die("no se puede establecer una conexión con la Base de Datos, por favor vuelva a intentarlo dentro de algunos minutos. <a href=\"JavaScript:history.go(-1);\" class=\"navegador\">volver</a>") or die(mysql_error());
mysql_select_db($dbconfig[db]) or die(mysql_error());
?>
//conexión con la BD (Base de Datos) y selección de la misma (mysql_select_db)
<?
if (isset($_POST['nov_titulo'])){$nov_titulo = $_POST['nov_titulo'];}
if (isset($_POST['nov_texto'])){$nov_texto = $_POST['nov_texto'];}
?>
//chequeo del POST (formulario)
<?php
$unique = time();
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/patch/carpeta/uploads/'.$unique;
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
$uploadcheck = $uploadfile;

//la variable unique es la hora actual en formato unix, esto solamente lo uso para evitar que dos imágenes tengan el mismo nombre, uploadfile toma en SERVER[DOCUMENT_ROOT] el patch del servidor (en windows por ej. c:\apache\www), con el punto (.) la agregamos el patch donde queremos que nos guarde las imágenes y le agregamos la fecha. En uploadfile le agregamos el nombre de la imágen. Uploadcheck es para chequear lo siguiente:

if(empty($_FILES['userfile']['name'])){
$uploadfile = "";}

//con esto evitamos que en la base de datos nos guarde, en caso de que no se halla subido una imagen en el formulario, el patch solo, por ej. (c:\apache\www\patch\carpeta\uploads\$unique).

$update = mysql_db_query("$dbconfig[db]","INSERT INTO $dbtable[novedades] (nov_img, nov_titulo, nov_texto, nov_fecha) VALUES ('$uploadfile', '$nov_titulo', '$nov_texto', CURRENT_DATE)") or die(mysql_error());

//aquí insertamos en la DB los datos, nada raro, solo el CURRENT_DATE que utilizamos para ingresar la fecha actual en el campo nov_fecha de la DB, no tiene nada que ver con tu pregunta, pero ya que yo la utilizo, la deje por si alguna vez te sirve.

$borrarID = mysql_db_query("$dbconfig[db]","ALTER TABLE $dbtable[novedades] DROP id") or die(mysql_error());
$alterar= mysql_db_query("$dbconfig[db]","ALTER TABLE $dbtable[novedades] ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id)") or die(mysql_error());

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "El archivo fue subido con éxito";
print "Información del archivo:";
print_r($_FILES);
} else {
print "El archivo no se pudo subir, información:\n";
print_r($_FILES);
}
print "</pre>";
?>
__________________
Dios dira que esto no es justo, pero lo sera...
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 22:58.