dominios y alojamiento web en hostalia

Introducir una imagen en un campo con My SQL

Hola a todos. Tengo una duda que debe ser muy fácil de resolver, porque después de "bucear" en las Faqs, articulos y manuales de DesarrolloWeb, no he...

La FAQ Introducir una imagen en un campo con My SQL tiene

Pertenece a la categoría:

Pregunta
Hola a todos. Tengo una duda que debe ser muy fácil de resolver, porque después de "bucear" en las Faqs, articulos y manuales de DesarrolloWeb, no he encontrado nada en relación con mi duda.
Utilizo phpMyAdmin 2.7.0, y quiero almacenar en un campo de la base de datos una imagen y no se como hacerlo, empezando porque no sé el tipo de dato que le tengo que asignar al campo.
Gracias anticipadas por vuestra ayuda


Respuesta de Ita Salcedo
puedes hacerlo pero no te aconcejo porque ocupa demasiado espacio y es poniendo un campo tipo blob.

$imangen=imagecreatefromgif("iamge.gif");
ob_start();
@imagegif($imagen);
$jpg=ob_get_contents();
ob_end_clean();


algo asi.

O
puedes guardar el path de tu imagen utilizando para esto un campo tipo varchar(30) dependiendo de la path que tengas.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 4 comentarios a la faq
3 comentarios no revisados
1 comentario revisado:
Introducir una imagen en un campo con My SQL
04/2/2010
Mas Explicacion AQUI: http://www.buayacorp.com/archivos/guardar-una-imagen-y-su-miniatura-a-un-campo-blob-de-mysql

Yo para escoger la Imagen uso un <INPUT type="file" name="foto" id="foto"> dentro de un FORM, no olvides que la etiqueta FORM debe contener este atributo enctype="multipart/form-data". y debe existir algun boton (llamado por ejempo enviar) para mandar el formulario.

llamale guardaImg.php
y puedes usar un require("guardaImg.php") ó include("guardaImg.php")
y luego invocas la funcion asi guardaImagen()

<?php
//INICIO FUNCION
function guardaImagen()
{

// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
// Nivel de errores
error_reporting(E_ALL);
// Constantes
# Altura de el thumbnail en píxeles
define("ALTURA", 100);
# Nombre del archivo temporal del thumbnail
define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podría ser:
// define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
# Servidor de base de datos
define("DBHOST", "localhost");
# nombre de la base de datos
define("DBNAME", "test");
# Usuario de base de datos
define("DBUSER", "root");
# Password de base de datos
define("DBPASSWORD", "");
// Mime types permitidos
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Variables de la foto
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
// Verificamos si el archivo es una imagen válida
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
// Creando el thumbnail
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
$img = imagecreatefromjpeg($tmp_name);
break;
case $mimetypes[2]:
$img = imagecreatefromgif($tmp_name);
break;
case $mimetypes[3]:
$img = imagecreatefrompng($tmp_name);
break;
}
$datos = getimagesize($tmp_name);
$ratio = ($datos[1]/ALTURA);
$ancho = round($datos[0]/$ratio);
$thumb = imagecreatetruecolor($ancho, ALTURA);
imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
imagejpeg($thumb, NAMETHUMB);
break;
case $mimetypes[2]:
imagegif($thumb, NAMETHUMB);
break;
case $mimetypes[3]:
imagepng($thumb, NAMETHUMB);
break;
}
// Extrae los contenidos de las fotos
# contenido de la foto original
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
# contenido del thumbnail
$fp = fopen(NAMETHUMB, "rb");
$tthumb = fread($fp, filesize(NAMETHUMB));
$tthumb = addslashes($tthumb);
fclose($fp);
// Borra archivos temporales si es que existen
@unlink($tmp_name);
@unlink(NAMETHUMB);
// Guardamos todo en la base de datos
#nombre de la foto
$nombre = $_POST["nombre"];
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));;
mysql_select_db(DBNAME, $link) or die(mysql_error($link));
$sql = "INSERT INTO tabla(nombre, foto, thumb, mime)
VALUES
('$nombre', '$tfoto', '$tthumb', '$type')";
mysql_query($sql, $link) or die(mysql_error($link));
echo "Fotos guardadas";
exit();
}
}
//FIN FUNCION
?>

Volver al árbol de categoríasVolver al árbol de categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...