Comunidad de diseño web y desarrollo en internet online

Redimensionar imagen & subir a base de datos PHP

Citar            
MensajeEscrito el 08 Jul 2010 05:26 am
Hola a todos!

Necesito hacerles una consulta.
Tengo un formulario con el que subo imágenes a una base de datos (funciona sin problemas).
La complicación que tengo es que al visualizar las fotos subidas, si son muy grandes, no entran en la pantalla.
Entonces la cuestión es: ¿¿¿ Cómo puedo hacer para redimensionar las imágenes antes de que sean subidas a la base de datos ???

Este código rescata la imagen que viene del formulario como "img2"

$fileFoto2 = $_FILES ['img2'];
if (!empty($fileFoto2)){
$fileFoto2_name = $_FILES['img2']['name'];
$fileFoto2_type = $_FILES['img2']['type'];
$fileFoto2_size = $_FILES['img2']['size'];
$fileFoto2_tmp_name = $_FILES['img2']['tmp_name'];
if (!empty($fileFoto2_name)){
$fileFoto2OK = true;
$fileFoto2Handle1 = fopen($fileFoto2_tmp_name , "r");
$fileFoto2Content1 = fread($fileFoto2Handle1, $fileFoto2_size);
$fileFoto2Content1 = addslashes($fileFoto2Content1);
}else{
$fileFoto2OK = false;
}
}else{
$fileFoto2OK = false;
}





Este código es el que sube la imagen a la base

if ($a==2){
if ($activo!='1'){$activo='0';}
if ($oferta!='1'){$oferta='0';}
$consulta = "UPDATE `casca_productos` SET
`codigo` = '$codigo',
`nombre` = '$nombre',
`descrip` = '$descrip',
`tamano` = '$tamano',
`activo` = '$activo',
`idcat` = '$categoria',
`precio` = '$precio',
`oferta` = '$oferta',
`observ` = '$observ'";
if ($fileFoto1OK){
$consulta .=",`img1type` = '$fileFoto1_type',`img1` = '$fileFoto1Content1' ";
}
if ($fileFoto2OK){
$consulta .=",`img2type` = '$fileFoto2_type',`img2` = '$fileFoto2Content1' ";
}
$consulta .= " WHERE idprod =$d LIMIT 1";


if (mysql_query($consulta)){
$mensaje="El producto ha sido modificado correctamente. ";
}else{
$mensaje="El producto no ha sido modificado. ";
}


Voy a estar muy agradecido de todo lo que puedan comentar y ayudarme, hace 3 días que estoy dando vueltas y no logro dar con nada concreto :shock:
Gracias!!! de ante mano
Saludos!!

Por enanomal

1 de clabLevel



 

Arg

msie8
Citar            
MensajeEscrito el 08 Jul 2010 08:42 pm
no subas imagenes a la base de datos mejor guarda la ruta y bloquea el acceso externo a la carpeta donde guardas las imagenes

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 09 Jul 2010 04:13 pm
Es verdad, hace lo que dice talcual. Yo hago eso, y luego siemplemente verificas el tamaño con getimagesize() y si es mayor al tamaño que diste, insertas la imagen con el tamaño definido.

ej:
$anchura_correcta=x; // Pones la anchura que desees que tome la imagen.
$tamaño=getimagesize($imagen); // Rescata información variada de la imagen.
$ancho=$tamaño[0]; // Anchura actual de la imagen.
$alto=$tamaño[1]; // Altura actual de la imagen.
if($ancho>510) // Si la anchura es mayor a 510
{
echo "<img src=\"".$imagen."\" style=\"width: $anchura_correcta;\">"; // Printeamos la imagen con una anchura definida.
}
else
{
echo "<img src=\"".$imagen."\">"; // La printeamos normalmente, sin modificaciones.
}

Espero que te alla servidor. Saludos.
PD: Se que no es realmente la solución a lo tullo, pero te puede servir.

Por feme

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Jul 2010 05:33 pm
talcaual y feme

Gracias por la ayuda, logré solucionarlo. Tuve q escribirlo todo de nuevo, pero ya está funcionando perfectamente. Y ahora ya se que no es buena práctica guardar imágenes en la BD.

Saludos!! ^^

Por enanomal

1 de clabLevel



 

Arg

msie8
Citar            
MensajeEscrito el 22 Dic 2012 03:57 pm
Estoy trabajando en un formulario donde mis usuarios llenan datos y acompañan todo con su foto. Me agradó tu código y la respuesta que te dieron. No seas malito, publica el código con la solución para darme una idea.

Gracias!

Por Enrique_Arroniz

4 de clabLevel



Genero:Masculino  

Programador Web/Flash/VBasic

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.