Jump to content


Photo

Predeterminar Imagen a subir en Servidor (Video 22 POO - Master Cesar Cancino)


  • Please log in to reply
3 replies to this topic

#1 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 posts

Posted 12 February 2012 - 01:31 PM

Buenas foro nuevamente!!!Eh vuelto !!!je..

En esta ocasión me encuentro con un problema al cual no le he podido encontrar la vuelta!!!Estoy ya trabajando con PHP Orientado a Objetos y en el video 22 del Master CCancino encontré una función para subir imágenes vía POST y recibirlos vía $_FILE o $_POST..El problema se da cuando alguien decide no subir una imagen debido a que la función copy() del FILE no puede estar vacía.
Por ende la idea es tener una imagen ya en servidor que este predeterminada en el input de la foto, entonces en caso de que no se seleccione una foto en el "Examinar", al guardarse el registro en el alta, se guarde con esta foto predeterminada.

El input que utilizo es muy sencillo:

<input name="foto" type="file" id="foto" size="30" />


Eh pensado en darle un valor al value..Pero realmente me he enredado más y he terminado en este problema..
Ayudaaaaaaa!!!Predeterminemos una imagen en este FILE!!!!!je..

Por último les dejo la pantalla del error que me da cuando no selecciono ninguna imagen en el input.

Gracias de antemano!!!!!!

Attached Files


  • 0

#2 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 posts
  • Locationen oa

Posted 12 February 2012 - 08:20 PM

Podrías hacer lo siguiente

Comprobar que si viene vació la imagen entonces guarda en la base de datos el nombre de una foto generica y no usas copy,ya que ya tienes el nombre y la foto por ejemplo generico.jpg

En cambio si no esta vació usas copy y todo el procedimiento

if(empty($_FILE)){

  guarda en la base de datos el nombre de la  foto que tengas por defecto y obviamente no subes ninguna imagen,ya
que ya estaría en tu carpeta

}

else{

  guarda la informacion en la base de datos y usa la funcion copy
}
  • 0

#3 Fedevergara

Fedevergara

    Advanced Member

  • Miembros
  • PipPipPip
  • 56 posts

Posted 14 February 2012 - 04:15 PM

Squall!!!Lo solucioné!!!Genial seguí tu idea!!La había probado pero me olvidad el empty del $_FILES así que nunca lo solucionaba!!!..Acá les dejo el método que uso para solucionar el problema!!!


public function add_producto($denominacion,$id_categoria,$descripcion,$cantidad,$precio_c,$precio_v,$foto)
{
if (empty($_FILES["$foto"]))
{
$sql="INSERT INTO productos(id_producto,denominacion,id_categoria,descripcion,cantidad,precio_c,precio_v,fecha,foto)
VALUES
(null,'".$_POST["denominacion"]."','".$_POST["id_categoria"]."','".$_POST["descripcion"]."','".$_POST["cantidad"]."','".$_POST["precio_c"]."','".$_POST["precio_v"]."',now(),'n_foto.jpg')";
$res=mysql_query($sql,Conectar::con());
echo "<script type='text/javascript'>
alert ('El registro ha sido almacenado correctamente.');
window.location = 'index.php';
</script>";
}else
{
copy($_FILES["foto"]["tmp_name"],"fotos/".$_FILES["foto"]["name"]);
$thumb=new thumbnail("fotos/".$_FILES["foto"]["name"]);
$thumb->size_width(175);//setea el ancho de la copia
$thumb->size_height(200);//setea el alto de la copia
$thumb->jpeg_quality(75);//setea la calidad jpg
$nom=$_POST["denominacion"].".jpg";
$thumb->save("fotos/$nom"); //guardarla en el servidor
//$thumb->show(); //mostrar la imagen copiada
unlink("fotos/".$_FILES["foto"]["name"]);
$sql="INSERT INTO productos(id_producto,denominacion,id_categoria,descripcion,cantidad,precio_c,precio_v,fecha,foto)
VALUES
(null,'".$_POST["denominacion"]."','".$_POST["id_categoria"]."','".$_POST["descripcion"]."','".$_POST["cantidad"]."','".$_POST["precio_c"]."','".$_POST["precio_v"]."',now(),'$nom')";
$res=mysql_query($sql,Conectar::con());
echo "<script type='text/javascript'>
alert ('El registro ha sido almacenado correctamente.');
window.location = 'index.php';
</script>";
}
}


Ahora me gustaría poder predeterminar un tamaño de imagen fijo para cuando grabe la imagen en el servidor!!!Yo en este uso una librería que facilitó el Master Cesar Cancino en donde podemos elegir que a la copia la re dimensione pero con valores porcentuales en el:   


$thumb->size_width(175);//setea el ancho de la copia
$thumb->size_height(200);//setea el alto de la copia


He intentado poner las dimensiones en pixeles!!Pero me genera un error!!!Si alguien por las casualidades del mundo lo sabe solucionar por favor ayudaaaaa!!!!
  • 0

#4 Sephiroth_801

Sephiroth_801

    Member

  • Miembros
  • PipPip
  • 26 posts

Posted 09 May 2012 - 08:50 PM

Yo ahora estoy en ese videotutorial, y al tratar de mostrar la imagen en miniatura dice lo siguiente: La imagen "aquí sale la dirección http://localhost..etc. no puede ser mostrada porque contiene errores"
  • 0




IP.Board spam blocked by CleanTalk.