WordPress tiene por defecto una lista de archivos que son los permitidos para cargar a través del mismo sistema son sobre todo imágenes, audio, video y cierto tipo de documentos que son los más utilizados. ¿Pero qué podemos hacer para subir otro tipo de archivo en WordPress?
- Imagenes: .jpg, .png, .gif, .jpeg, .ico
- Documentos: .pdf, .doc, .ppt, .odt, .xls
- Audio: .mp3, .m4a, .ogg, .wav
- Video: .mp4, .mov, .avi, .mpg, .ogv, .3gp, .3g2
¿Cuál es la razón para evitar esas otras extensiones?
El objetivo de esta prohibición es un mayor nivel de seguridad… Si se permitiera la subida de cualquier tipo de archivo, imaginemos un .exe, .dmg u otro tipo de ejecutable, el potencial de infestación de malware es muy grande y la inexperiencia de ciertos usuarios puede favorecer la mala intensión de uno que otro hacker.
¿Pero qué pasa si por alguna razón queremos subir un tipo de archivo no permitido?
En mi ámbito como profesor me he topado que en muchos casos se necesita compartir en algunos casos diferentes tipos de archivos, por ejemplo los de diseño.
Cuando en un curso de Ilustrador o de Photoshop el alumno va a necesitar una muestra del proyecto o el final del ejercicio para que lo pueda seguir en las prácticas.
Pero para poder hacerlo tuve que modificar el código pero vamos paso por paso…
Modificando el código
En el menú lateral (negro) buscamos Apariencia, entramos a la sección que se llama Editor de temas y seleccionamos functions.php
Apariencia>Editor de temas>functions.php
En donde nos encontramos ahora es en el archivo functions.php y vamos a alterar este archivo del tema, el asunto con eso es que todos los archivos son diferentes, depende del tema que tengamos instalado en nuestro wordpress. Yo en lo personal siempre me pongo hasta el final de donde haya algo escrito y ahí pongo un comentario y el código que se vaya a incluir.
Ejemplo:
//Inclusión de Extensiones extras
function my_myme_types($mime_types){
$mime_types['ai'] = 'application/pdf'; //Agregar extension = mime Ilustrador
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
En la imagen anterior ya está incluido el código para agregar ilustrador y photoshop… En este pequeño código está solamente ilustrador.
En el siguiente pondré un ejemplo de cómo agregar una segunda extensión, encierro entre el comentario la segunda exteción, si quicieran agregar una tercera sólo se tiene que duplicar lo que se encuentra entre los comentarios “//Código Nuevo” y cambiarlo que está entre las comillas simples.
// Inclusión de Extensines extras
function my_myme_types($mime_types){
$mime_types['ai'] = 'application/pdf';
//Código Nuevo
$mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Agregar extensión nueva
//Código Nuevo
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
Si logramos hacerlo de manera adecuada en los medios ya podemos subir el archivo con la extensión que le establecimos al archivo functions.php
MIME type
El MIME TYPE (Multipurpose Internet Mail Extensions) se la manera en que en el navegador identifica qué tipo de información contiene un archivo.
Es una información realmente específica y la única manera de saberla es a partir de quien creó el software que usa tal extensión… Personalmente no sabía qué MIME type era el archivo .ai que produce ilustrador así que busqué en Google “mime type ilustrador” y eso me llevó, eventualmente, a la siguiente url: https://webstoked.com/mime-type-adobe-illustrator-ai-files/ donde estaba esa información.
Lo mismo sin tocar código
También si se prefiere hacer la inclusión de estas características sin tocar el código existen diferentes plugins… Pero yo explicaré solamente una: File Upload Types by WPForms.
Primero que nada hay que entrar en la sección de Plugins y buscar el nombre…
Después de instalar el File Upload Types by WPForms aparecerá el botón de activar o podemos continuar con otras tareas y regresar posteriormente a plugins y activarlo desde donde se ve su nombre.
Posteriormente encontraremos en los ajustes un nuevo menú con el nombre: “File Upload Types” donde vamos a entrar para hacer inclusión de las nuevas extesiones.
Lo primero que veremos es una lista de aplicaciones predeterminadas para activar:
Y si la extensión que buscamos se encuentra en esa lista lo único que tenemos que hacer es seleccionar el recuadro que está al final de la fila y hacer que aparezca la palomita… Y guardar con el botón de abajo que dice “Save Settings”.
Pero si no figura en la lista podemos agregar dicha extensión:
Al final de la lista aparece la sección “ADD CUSTOM FILE TYPES” y ahí ponemos el nombre del programa, el mime type del archivo y al final la extensión, respectivamente en los espacios del formulario y finalmente salvamos.
Si lo hicimos bien ya podremos ver nuestro tipo nuevo en la lista de “ENABLED” que significa habilitado y se refiere a que nuestro tipo de archivo nuevo está listo.
Yo en lo personal prefiero hacerlo directo en código porque siempre hay que recordar que los plugins, todos, tienen ingerencia en el tiempo de carga y entre más plugins más tiempo de carga necesitará la página.
Enjoy!
Referencias:
https://codex.wordpress.org/Uploading_Files
https://webstoked.com/mime-type-adobe-illustrator-ai-files/
https://www.monsterinsights.com/how-to-allow-wordpress-to-upload-all-file-types/
https://www.viainternet.com.mx/clientes/index.php/knowledgebase/21/iQue-es-MIME-Types.html