elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?  (Leído 4,515 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Resuelto]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
« en: 30 Agosto 2019, 16:35 pm »

Buenos días!
¿Como se podría obtener el peso de una imagen y también como se podría usar en una comparación?

Es decir:

Código
  1. if($peso_imagen <= 3M) // Si el peso es menor igual a tres megas (tampoco sabría como escribir ese peso)
  2. {
  3.    [Imagen aceptada]
  4. }
  5. else
  6. {
  7.    [Imagen rechazada]
  8. }
  9.  

Gracias.


Mod: Temas sobre PHP van al subforo de PHP.


« Última modificación: 24 Septiembre 2019, 12:06 pm por #!drvy » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
« Respuesta #1 en: 30 Agosto 2019, 18:59 pm »

$tamanhoImagen = filesize( '/ruta/imagen.jpg' );

Si la imagen es externa usa file_get_contents.


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.176



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
« Respuesta #2 en: 30 Agosto 2019, 19:24 pm »

Saludos,

- Se puede hacer de dos maneras, en Client Side usando javascript y en Server Side con php, supongo que lo ideal es hacerlo en ambos lados. La ventaja de Client Side es que el archivo no se sube al servidor, no consume ancho de banda, ni hay que esperar a que el archivo termine de subirse para comprobarlo. La desventaja del Client Side es que no es seguro ya que el cliente puede editarlo a su gusto.

Código
  1. <form action="#" method="post" onsubmit="validar()" enctype="multipart/form-data">
  2.  <input type="file" id="fileImg" name="fileImg">
  3.  <input type="submit" value="Upload">
  4. </form>
  5.  
  6. <script>
  7.  function validar() {
  8.    if ( document.getElementById("fileImg").files[0].size > 3000000 ) {
  9.      alert("Límite de subida es 3 MB");
  10.      event.preventDefault();
  11.    } else {
  12.      alert("Archivo permitido");
  13.    }
  14.  }
  15. </script>
  16.  
  17. <?php
  18.  if ( isset($_FILES["fileImg"]) ) {
  19.    if ( $_FILES["fileImg"]["size"] > 3000000 ) {
  20.      echo "<script>alert('Límite de subida es 3 MB')</script>";
  21.    } else {
  22.      echo "<script>alert('Archivo permitido')</script>";
  23.      // Ahora debes guardar la imagen
  24.      // move_uploaded_file($_FILES["fileImg"]["tmp_name"], "images/img01.png");
  25.    }
  26.  }
  27. ?>

- Ahora otra cosa para discutir es como tratar los Bytes, MB, MiB, etc XD, lo normal es trabajar con Bytes, y los sistemas operativos trabajan con MiB aunque diga MB pero siempre suelen poner los octetos y Bytes también, en realidad 3MB = 2.86102294921875 MiB, y así, por eso es que los vivos fabricantes de HDD, SSD, USB dicen 8GB, 64GB, 1TB, etc y en realidad en sistema operativo reconoce menos por que los mide en MiB, TiB, etc y los fabricantes si usan correctamente el MB, TB, etc
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
« Respuesta #3 en: 30 Agosto 2019, 20:09 pm »

PHP y Apache tienen directivas para limitar el tamaño de los requests enviados. En PHP tienes:

post_max_size
upload_max_size

En Apache:

LimitRequestBody
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
« Respuesta #4 en: 30 Agosto 2019, 21:07 pm »

¡Muchas gracias a los tres!  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines