Member-only story

Cómo Sanitizar Un Nombre De Archivo En Drupal

Usando event subscriber

Sergio Guardiola Herrador
2 min readFeb 10, 2025
Photo by Matthew Dockery on Unsplash

Al agregar un campo para subir archivos que usarán los usuarios, no debes esperar que suban archivos con nombres que no contengan caracteres extraños o espacios, porque a menudo lo harán.

En la mayoría de los casos, puedes simplemente usar el módulo de transliteration (https://www.drupal.org/project/transliteration), Y eso lo solucionará. Pero si, como en mi caso, necesitas cambiar el nombre de los archivos a un formato específico, es posible que quieras crear tu propio event subscriber.

Para ello, sigue estos pasos (reemplazando module_name con el nombre real de tu módulo):

  1. Crea el fichero modules/custom/module_name/module_name.services.yml:
module_name.file_upload_subscriber:
class: Drupal\module_name\EventSubscriber\FileUploadSubscriber
arguments: ['@transliteration']
tags:
- { name: event_subscriber }

2. Crea el fichero modules/custom/module_name/src/EventSubscriber/FileUploadSubscriber.php:

<?php

namespace Drupal\module_name\EventSubscriber;

use Drupal\Core\File\Event\FileUploadSanitizeNameEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Drupal\Component\Transliteration\TransliterationInterface;
class FileUploadSubscriber implements…

--

--

Sergio Guardiola Herrador
Sergio Guardiola Herrador

Written by Sergio Guardiola Herrador

I write articles in English and Spanish, mostly about programming, technology, travel, money, investing. You can find me here: https://sergioguardiola.net

No responses yet