Los MIME Types
Los MIME Types (Multipurpose Internet Mail Extensions) son un identificador de dos partes para formatos de archivos y contenidos de formato de transmisión en Internet.
Para mayor simplicidad a estas 2 partes se les puede llamar general y particular. Por ejemplo:
image/gif
La parte general indica que es una imagen y la parte particular indica que es con formato GIF.
Cuando estamos trabajando con subida de archivos con PHP una de las validaciones que debemos hacer es el control del tipo de archivo que se está subiendo.
El tipo de archivo se puede conseguir fácilmente usando la variable global $FILES ya que está incluido en este array.
En el ejemplo en funcionamiento tenemos 2 ejemplos. Nos vamos a centrar a explicar el de las imágenes ya que es más completo.
Creamos nuestro formulario simple que permite la subida de un archivo:
<form action="index.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="fileUpload">Archivo CSV</label>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="attachment" class="form-control" />
</div>
<div class="form-group">
<button type="submit" name="submitCSV" class="btn btn-default button button-medium">
<span>Subir<i class="icon-chevron-right right"></i></span>
</button>
</div>
</form>Se trata de un formulario que para permitir la subida de archivos le añadimos el atributo enctype y tan solo tenemos un campo que nos permite seleccionar el archivo del PC y un botón de envío.
Uno de los controles que hay que tener en cuenta tras enviar el formulario es el control del tipo de archivo que se está subiendo. En nuestro caso, tan solo queremos que sean imágenes con disntintas extensiones.
Podemos declarar un array con los tipos que queremos:
$mime_type_image = array(
'png' => 'image/png',
'jpe' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
);Y controlar, por ejemplo, el botón del formulario de la siguiente forma:
Si se ha pulsado el botón de envío, revisamos si el tipo de archivo está en nuestro array previamente declarado con los tipos que deseamos. En el caso de que el tipo de archivo esté en el array declarado, el archivo será correcto para ser procesado, en caso contrario, no.
Existen infinidad de tipos de archivos así que esta técnica puede servir para considerar cualquier tipo de archivo.



Deja una respuesta