Buenas a todos,
estoy tratando de subir una imagen y que a al vez me guarde el nombre en la base de datos, bueno esto ya lo logre con el siguiente codigo.
Código PHP:
Ver originalif(isset($_POST['btnsave'])) {
$pcttitulo_ing =$_GET['pcttitulo'];
$pcttitulo_ing =$_GET['pcttitulo_ing'];
$rl_pctid = $_GET['rl_pctid'];
$dimagen = $_POST['dimagen'];
$orden = $_POST['orden'];
$imgFile = $_FILES['g_ruta']['name'];
$tmp_dir = $_FILES['g_ruta']['tmp_name'];
$imgSize = $_FILES['g_ruta']['size'];
$errMSG = "Error!!! Vaya al inicio de la página.";
}
else if(empty($dimagen_ing)){ $errMSG = "Colocar Descripcion breve de la imagen en idioma ingles.";
}
else if(empty($imgFile)){ $errMSG = "Favor verifique que haya cargado la imagen.";
}
else
{
$upload_dir = 'filegalery/'; // Directorio donde se guarda
$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION
)); // envia la extension de la imagen
// validamos extenciones
$valid_extensions = array('jpeg', 'jpg', 'png'); // extensiones permitidas
// renombra la imagenes para evitar conflictos
$uplogo = rand(1000,1000000).".".$imgExt;
// permitir que los formatos de archivo de imagen válidos
if(in_array($imgExt, $valid_extensions)){ // que el tamaño no exeda los '4MB'
if($imgSize < 4000000) {
}
else{
$errMSG = "Disculpe, el archivo exede el peso permitido.";
}
}
else{
$errMSG = "Disculpe, solo arhivos con formato JPG, JPEG Y PNG son validos.";
}
}
{
$stmt = $DB_con->prepare('INSERT INTO gal_img(rl_pctid,g_ruta,dimagen_ing,orden) VALUES(:lrl_pctid, :lg_ruta, :ldimagen_ing, :lorden)');
$stmt->bindParam(':lrl_pctid',$rl_pctid);
$stmt->bindParam(':lg_ruta',$uplogo);
$stmt->bindParam(':ldimagen_ing',$dimagen_ing);
$stmt->bindParam(':lorden',$orden);
if($stmt->execute())
{
$successMSG = "Un Momento ya casi terminamos!!!...";
header("refresh:5;index.php"); // }
else
{
$errMSG = "error al insertar....";
}
}
}
El punto esta en que también quiero que la imagen que subo haga una copia y cambie de tamaño, a esto veo que se le llama "thumbnail photo". La mision es que se suba la imagen pero antes de ser seleccionada aparezca una referencia de la misma en miniatura para que no demore por el peso en cargar la pagina principal del website.
Ahora esto es lo que conseguí de otra fuente, pero veo que solo sube JPG y no png u otro tipo de imágenes. También que en ocasiones algunos jpg los sube pero me manda error al crear la miniatura.
Aqui el codigo
Código PHP:
Ver originalif(isset($_FILES['files'])){ foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
$file_name = $key.$rd.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$query="INSERT into tbl_images(`id`,`imgname`,`imgtype`,`imgsize`) VALUES('','$file_name','$file_type','$file_size'); ";
$desired_dir="uploadphotos";
if(empty($errors)==true){ if(is_dir($desired_dir)==false){ mkdir("$desired_dir", 0700); }
if(is_dir("$desired_dir/".$file_name)==false){
$newwidth=($width/$height)*150;
$newheight=150;
$filename = "thumbphotos/".$file_name;
}else{
$new_dir="$desired_dir/".$file_name.time(); }
}else{
}
}
echo " <div class='alert alert-success'>Listo!<a href='addevent.php'> Otra foto </a></div>";
}
}
A esto por lo que veo que mando error ya que solo permitía jpg, pero sí sube las imagenes en png pero con error y sin crearla en miniatura anexe esto al código.
a esto:
lo he remplazado por esto:
Código PHP:
Ver original case IMAGETYPE_JPEG:
break;
case IMAGETYPE_GIF:
break;
case IMAGETYPE_PNG:
break;
default:
die('Imagen no soportada.'); }
Confió mas en el código principal, que es el que estoy trabajado, pero no se como ampliarlo para que cree una imagen miniatura de la que subió en otra carpeta.
Muchas gracias a todos de antemano de tomarse el tiempo de leer y apoyarme.
Saludos!