inicialmente tengo un formulario para subir un archivo y guardarlo en una determinada carpeta, además si el checkbox para hacer la imagen por defecto esta activada, se registra en una base de datos, hasta ahí todo funciona bien, pero necesito que también se cambie el tamaño de la imagen por lo que inserte un código pero no logro hacer que funcione, les dejo los codigos del formulario y las versiones del uploader
espero alquien me pueda dar una mano, gracias
formulario
Código :
<form action="inmueble_subir_archivo_proceso.php?id=<?php echo $id ?>" method="post" enctype="multipart/form-data"> <p>Seleccionar imagen:</p> <p><input class="btn btn-primary btn-sm center-block" type="file" name="fileToUpload" id="fileToUpload"> </p> <p><input type="checkbox" name="vista_previa" id="vista_previa" > Hacer imagen de vista previa</p> <p><input class="btn btn-success btn-sm" type="submit" value="Cargar" name="submit"></p> </form>
primera versión FUNCIONA
Código :
<div class="t_centrado"> <?php $id =$_GET['id']; $target_dir = "../../web/images/fotos/inmuebles/".$id."/"; $target_file =$target_dir. basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { //echo "File is an image - " . $check["mime"] . "."; //echo "El archivo se cargó con éxito"; $uploadOk = 1; } else { echo " <h3><span class='label label-danger'>Error</span></h3> <p>El archivo no es una imagen.</p> "; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>El archivo ya existe.</p> " ; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 5242880) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Error el archivo es demasiado grande. Solo se permiten archivos de hasta 5Mb.</p> "; $uploadOk = 0; } // Allow certain file formats //if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { if($imageFileType != "jpg" ) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Solo se permiten imagenes en formato .jpg.</p> "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "<p>No se cargó el archivo, intente con otro archivo.</p>"; // if everything is ok, try to upload file } else { //quiero insertar el resize aqui //condicion original sin sezise if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],$target_file)) { //actuzlizar datos en db para vista previa if(isset($_POST['vista_previa'])) { require '../settings_admin.php'; $actualizar = "UPDATE post SET post_imagen='".basename($_FILES["fileToUpload"]["name"])."' WHERE post_id = $id "; mysqli_query($conn, $actualizar); } else { }; //actuzlizar datos en db echo " <h3><span class='label label-success'>Carga completada</span></h3> <p >El archivo ". basename( $_FILES["fileToUpload"]["name"]). " ha sido cargado con éxito.</p> "; } else { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Error al cargar el archivo, vuelva a intentar.</p> "; } } ?> </div>
segunda version con RESIZE NO FUNCIONA
Código :
<div class="t_centrado"> <?php $id =$_GET['id']; $target_dir = "../../web/images/fotos/inmuebles/".$id."/"; $target_file =$target_dir. basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { //echo "File is an image - " . $check["mime"] . "."; //echo "El archivo se cargó con éxito"; $uploadOk = 1; } else { echo " <h3><span class='label label-danger'>Error</span></h3> <p>El archivo no es una imagen.</p> "; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>El archivo ya existe.</p> " ; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 5242880) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Error el archivo es demasiado grande. Solo se permiten archivos de hasta 5Mb.</p> "; $uploadOk = 0; } // Allow certain file formats //if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { if($imageFileType != "jpg" ) { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Solo se permiten imagenes en formato .jpg.</p> "; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "<p>No se cargó el archivo, intente con otro archivo.</p>"; // if everything is ok, try to upload file } else { //quiero insertar el resize aqui if (isset($_FILES['fileToUpload']) && $_FILES['fileToUpload']['tmp_name']!=''){ //Imagen original $rtOriginal=$_FILES['fileToUpload']['tmp_name']; //Crear variable $original = imagecreatefromjpeg($rtOriginal); //Ancho y alto máximo $max_ancho = 900; $max_alto = 600; //Medir la imagen list($ancho,$alto)=getimagesize($rtOriginal); //Ratio $x_ratio = $max_ancho / $ancho; $y_ratio = $max_alto / $alto; //Proporciones if(($ancho <= $max_ancho) && ($alto <= $max_alto) ){ $ancho_final = $ancho; $alto_final = $alto; } else if(($x_ratio * $alto) < $max_alto){ $alto_final = ceil($x_ratio * $alto); $ancho_final = $max_ancho; } else { $ancho_final = ceil($y_ratio * $ancho); $alto_final = $max_alto; } //Crear un lienzo $lienzo=imagecreatetruecolor($ancho_final,$alto_final); //Copiar original en lienzo imagecopyresampled($lienzo,$original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto); //Destruir la original imagedestroy($original); //Crear la imagen y guardar en directorio upload/ $archivo_ok=move_uploaded_file(imagejpeg($lienzo,$_FILES['fileToUpload']['tmp_name']),$target_file); } elseif($archivo_ok !== false){ //condicion original sin sezise //if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],$target_file)) { //actuzlizar datos en db para vista previa if(isset($_POST['vista_previa'])) { require '../settings_admin.php'; $actualizar = "UPDATE post SET post_imagen='".basename($_FILES["fileToUpload"]["name"])."' WHERE post_id = $id "; mysqli_query($conn, $actualizar); } else { }; //actuzlizar datos en db echo " <h3><span class='label label-success'>Carga completada</span></h3> <p >El archivo ". basename( $_FILES["fileToUpload"]["name"]). " ha sido cargado con éxito.</p> "; } else { echo " <h3><span class='label label-danger'>Error</span></h3> <p>Error al cargar el archivo, vuelva a intentar.</p> "; } } ?> </div>