Comunidad de diseño web y desarrollo en internet online

Subir imagen y cambiar tamaño

Citar            
MensajeEscrito el 02 Dic 2016 01:04 am
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

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>

Por gabrielbdmr

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Dic 2016 06:02 pm
¿te da errores?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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