Validation des extensions de fichier


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle code.20230421.CMS.FileValidator

Validation des extensions de fichier côté serveur

Pour les éléments de type file ou binary, il était possible (à l'aide du widget edition.file notamment) de mettre en place une validation côté client du type de fichier téléversé par l'utilisateur. Cette vérification était alors uniquement côté client.

Il est désormais possible (et très fortement conseillé) de répercuter cette restriction côté serveur. Pour cela, il faut modifier la définition de ses éléments pour rajouter l'utilisation du validateur custom "org.ametys.cms.data.FileValidator".

Pour savoir si vous avez des éléments à migrer, chercher dans les sources de votre projet la présence de d'élément de type file ou binary avec en widget-params, un paramètre nommé filter ou allowExtensions. Si c'est le cas, vous devez rajouter le validateur custom.

Si jamais votre élément a déjà un élément validation sans custom-validator vous pouvez juste ajouter la ligne custom-validator et cela fonctionnera.

Si votre élément utilise déjà un validateur custom, alors il vous faudra modifier votre validateur custom pour lui faire étendre FileValidator.

Avant :

<attribute name="image" type="file">
<label i18n="true">CONTENT_NEWS_IMAGE</label>
<description i18n="true">CONTENT_NEWS_IMAGE_DESC</description>
<widget>edition.file</widget>
<widget-params>
<param name="allowSources">external,resource</param>
<param name="filter">image</param>
</widget-params>
</attribute>

Après :

 

 

<attribute name="image" type="file">
<label i18n="true">CONTENT_NEWS_IMAGE</label>
<description i18n="true">CONTENT_NEWS_IMAGE_DESC</description>
<validation>
<custom-validator class="org.ametys.cms.data.FileValidator"/>
</validation>
<widget>edition.file</widget>
<widget-params>
<param name="allowSources">external,resource</param>
<param name="filter">image</param>
</widget-params>
</attribute>
Retour en haut