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>