WordPress límita por seguridad ciertas extensiones de archivo, en algunos casos necesitamos subir archivo de tipo .svg o .webp que serán rechazados por el sistema, existen varias formas de dar permiso al sistema para aumentar el tipo de archivos que queremos subir, debemos de tener en cuenta otros factores antes de hacer esto como la seguridad por ejemplo, para ello existen muchos plugins y es posible que sea la mejor opción si solo necesitamos agregar una única extensión de archivo, el problema lo tenemos cuando son varias extensiones.
La forma incorrecta
He visto en muchas instalaciones una forma poco recomendable de hacer esto, en el archivo wp-config.php se suele insertar la siguiente línea:
define('ALLOW_UNFILTERED_UPLOADS', true);
Subir archivos comprimidos
La forma más sencilla de realizar esta tarea sería comprimir los archivos en zip para evitar problemas de cualquier tipo, aunque esto no siempre es lo más cómodo para los usuarios
La forma correcta
La forma correcta de permitir otros tipos de extensión de archivo en Worpress sería creando una función en nuestro functions.php que defina los tipos mime que queremos permitir:
add_filter( 'upload_mimes', 'ddw_allow_myme_types', 1, 1 );
function ddw_allow_myme_types( $mime_types ) {
$mime_types['EXTENSION_DE_ARCHIVO'] = 'TIPO_MIME';
return $mime_types;
}
Por ejemplo:
add_filter( 'upload_mimes', 'ddw_allow_myme_types', 1, 1 );
function ddw_allow_myme_types( $mime_types ) {
$mime_types['aac'] = 'audio/aac';
return $mime_types;
}
También podemos limitar tipos de extensión de archivo:
add_filter( 'upload_mimes', 'ddw_disallow_myme_types', 1, 1 );
function ddw_disallow_myme_types( $mime_types ) {
unset( $mime_types['xls'] );
unset( $mime_types['xlsx'] );
return $mime_types;
}
O combinar ambos en la misma función:
add_filter( 'upload_mimes', 'ddw_myme_types', 1, 1 );
function ddw_myme_types( $mime_types ) {
$mime_types['aac'] = 'audio/aac';
unset( $mime_types['xls'] );
unset( $mime_types['xlsx'] );
return $mime_types;
}
Por último os dejo todas las extensiones de archivo y su tipo mime para insertarlas en la función si lo necesitáis:
.aac audio/aac .abw application/x-abiword .arc application/octet-stream .avi video/x-msvideo .azw application/vnd.amazon.ebook .bin application/octet-stream .bz application/x-bzip .bz2 application/x-bzip2 .csh application/x-csh .css text/css .csv text/csv .doc application/msword .epub application/epub+zip .gif image/gif .htm text/html .html text/html .ico image/x-icon .ics text/calendar .jar application/java-archive .jpeg image/jpeg .jpg image/jpeg .js application/javascript .json application/json .mid audio/midi .midi audio/midi .mpeg video/mpeg .mpkg application/vnd.apple.installer+xml .odp application/vnd.oasis.opendocument.presentation .ods application/vnd.oasis.opendocument.spreadsheet .odt application/vnd.oasis.opendocument.text .oga audio/ogg .ogv video/ogg .ogx application/ogg .pdf application/pdf .ppt application/vnd.ms-powerpoint .rar application/x-rar-compressed .rtf application/rtf .sh application/x-sh .svg image/svg+xml .swf application/x-shockwave-flash .tar application/x-tar .tif image/tiff .tiff image/tiff .ttf font/ttf .vsd application/vnd.visio .wav audio/x-wav .weba audio/webm .webm video/webm .webp image/webp .woff font/woff .woff2 font/woff2 .xhtml application/xhtml+xml .xls application/vnd.ms-excel .xml application/xml .xul application/vnd.mozilla.xul+xml .zip application/zip .3gp video/3gpp .3gp audio/3gpp .3g2 video/3gpp2 .3g2 audio/3gpp2 .7z application/x-7z-compressed
En futuras publicaciones hablaremos de la seguridad de este tipo de prácticas con algunas extensiones de archivo
Valoraciones
Sé el primero en valorar