ServiceNow : Comment implémenter l’upload de photos dans un portail (Guide technique + Code)
21 janv. 2026
Dans les portails ServiceNow, permettre aux utilisateurs d’uploader des photos (avatars, pièces jointes, etc.) améliore l’expérience utilisateur et la fonctionnalité des applications. Ce guide vous explique pas à pas comment implémenter un widget d’upload de photos, avec un code HTML + Client Script prêt à l’emploi, optimisé pour les formats JPEG, PNG, BMP, GIF, SVG.
Prérequis
Un portail ServiceNow (version Paris ou supérieure recommandée).
Accès à Service Portal Widget Editor.
Connaissances basiques en AngularJS (utilisé dans les Client Scripts ServiceNow).
Étape 1 : Structure du Widget
1. Code HTML
Le widget utilise :
Un bouton personnalisé pour déclencher la sélection de fichiers.
Un input type="file" caché (stylisé via CSS).
Une prévisualisation dynamique des images uploadées.
Une gestion d’état (
uploading) pour l’UX.
Note :
L’attribut
acceptrestreint les formats autorisés. Adaptez-le selon vos besoins.Si vous voulez autoriser l'upload de plusieurs fichiers, vous devez rajouter l'attribut
multiple.Le style est géré via des classes de la librairie Tailwind
2. Client Script (Logique d’Upload)
Le script gère :
Le déclenchement du sélecteur de fichiers.
La lecture des fichiers via
FileReader.L’upload vers un enregistrement ServiceNow via
snAttachmentHandler.La prévisualisation en base64.
Bonnes pratiques :
Remplacez
live_profileetphotopar le nom de votre table et le champ cible.Le
sysIddoit être dynamique (ex: récupéré via$scope.data.sys_idsi le widget est lié à un enregistrement).
Étape 2 : Intégration dans ServiceNow
Créez un nouveau widget :
Allez dans Service Portal > Widgets > New.
Collez le code HTML dans l’onglet HTML Template.
Collez le Client Script dans l’onglet Client Controller.
Configurez les permissions :
Assurez-vous que le rôle utilisateur a les droits
sn_attachment.writesur la table cible.
Testez le widget :
Ajoutez-le à une page de portail et vérifiez :
La sélection de fichiers.
La prévisualisation.
L’upload dans l’enregistrement ServiceNow.
Étape 3 : Optimisations Supplémentaires
Sécurité :
Validez les types MIME côté serveur (via un Script Include).
Limitez la taille des fichiers (ex: 5 Mo max) :
UX :
Ajoutez un message de succès après upload.
Implémentez un drag-and-drop (via la directive
ng-file-drop).
Cas d’Usage Courants
Scénario | Table ServiceNow | Champ Attachment |
|---|---|---|
Avatar utilisateur |
|
|
Pièces jointes (ticket) |
|
|
Profil client |
|
|
Dépannage
Problème : L’upload ne fonctionne pas. Solution :
Vérifiez que le
sysIdest valide.Assurez-vous que le champ cible est de type Attachment.
Problème : Les images ne s’affichent pas. Solution :
Vérifiez les CORS si les images sont hébergées externement.
Utilisez
ng-srcet nonsrcpour AngularJS.
Conclusion
Ce widget offre une solution clé en main pour l’upload de photos dans ServiceNow, avec une expérience utilisateur fluide et une intégration simple. Personnalisez-le selon vos besoins (taille maximale, formats, destination).
Besoin d’aide ? Contactez Snowlab pour une implémentation sur mesure ou une formation ServiceNow.

