Subir imagen y cambiar tamaño

Iniciado por gabrielbdmr, 2 Diciembre 2016, 02:10 AM

0 Miembros y 1 Visitante están viendo este tema.

gabrielbdmr

buen día con todos, tengo un problema con un código que no logro resolver:
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

<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

<div class="t_centrado">



<?php           
            
            $id 
=$_GET['id'];  
 
 
            
$target_dir "../../web/images/fotos/inmuebles/".$id."/";
            
$target_file =$target_dirbasename($_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 :(


<div class="t_centrado">



<?php           
            
            $id 
=$_GET['id'];  
 
 
            
$target_dir "../../web/images/fotos/inmuebles/".$id."/";
            
$target_file =$target_dirbasename($_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>