Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/12/2016, 23:16
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Problema con type, matriz $_FILES

A lo que te refieres algunos le llaman "enmascarar al archivo", pudiendo así camuflar archivos potencialmente peligrosos. Para esto, actualmente se utiliza el módulo Fileinfo (es posible que, en versiones antiguas de PHP, sea necesario activar la librería php_fileinfo.dll en el archivo php.ini), siendo la forma más efectiva para detectar casos así. Un ejemplo de su uso:
Código PHP:
Ver original
  1. $finfo = new finfo(FILEINFO_MIME_TYPE);
  2. $mime = $finfo->file($_FILES['ejemplo']['tmp_name']);
  3. $mimes = ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/bmp'];
  4. echo in_array($mime, $mimes) ? 'Es un archivo de imagen' : 'No es un archivo de imagen';

En el ejemplo, se crea un nuevo recurso fileinfo, pasándole como argumento la constante FILEINFO_MIME_TYPE para así obtener el MIME del archivo; luego, obtenemos dicha información del archivo en cuestión; establecemos los MIME aceptados (en este caso, de archivos de imagen) en un arreglo y, finalmente, verificamos si el MIME del archivo coincide con uno de ellos, imprimiéndose una respuesta según sea el caso.

Y, en el caso de que la versión de PHP que usas no tenga implementado dicho módulo, puedes usar la función getimagesize(), con la diferencia de que solo podrás usarla con archivos de imagen.



P. D.: Creo que ya te respondieron esto. No había visto las respuestas.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 08/12/2016 a las 23:28 Razón: Posdata