1024 && $peso<1048576){ return round($peso/1024,1 ). " KB"; }else if($peso>1048576 && $peso<1073741824){ return round($peso/1048576,2 ). " MB"; }else{ return round($peso/1073741824,2 ). " GB"; } } // FIN funciones************************************* if (isset($_FILES["archivo"])){ // si viene algo del form $file = $_FILES["archivo"]; //cargo en $file la info $nombre = $file["name"]; //nombre original subido $ruta_provisional = $file["tmp_name"]; //ruta temporaria en server $ruta = "img-dropzone/"; // ruta final $extension = extension($nombre); // extensión del archivo $raiznombre = raiz($nombre); // raiz del nombre del archivo $im = new Imagick(); //creo el objeto imagick $im->readImage($ruta_provisional); // grabo la imagen desde el temporal if ($extension =='HEIC' || $extension=='heic'){ // si es heic $im->setImageFormat('jpeg'); // le cambio el formato a jpg $nombre = $raiznombre . '.jpg'; // le cambio la extensión en el nombre } if(file_exists($ruta. $nombre)){ //si ya hay imagen con ese nombre se lo cambio $nombre = nombrecopia($nombre); } $ruta_final= $ruta. $nombre; $im->writeImage($ruta_final); // grabo en el disco la imagen grande //data para pasar por JSON, no son mandatorios $ancho = $im->getImageWidth(); //obtengo ancho $alto = $im->getImageHeight(); //obtengo alto $im->clear(); // destruyo objeto y libero memoria $peso = peso(filesize($ruta_final)); //tamaño en Bytes peso(paso a string con B, KB, MB, GB) $fecha = date("d/m/Y", filectime($ruta_final)); // fecha de última modificación de inode (o sea upload en este caso) $resultado=array("devolucion"=>$nombre,"ruta"=>$ruta_final,"ancho"=>$ancho,"alto"=>$alto,"peso"=>$peso,"fecha"=>$fecha); echo(json_encode($resultado)); }// fin if (is set) si viene algo del form ?>