Pour des raisons de sécurité, le contrôle FileUpload ne fonctionne pas à l'intérieur d'un UpdatePanel. En effet l'UpdatePanel fait ses requêtes de mis à jour partiel en utilisant XmlHttpRequest et l'on ne peut pas envoyer de fichier via cet objet.
Ce code rend possible l'utilisation d'un FileUpload à l'intérieur d'un UpdatePanel, pour cela j'ai créer un nouveau contrôle qui hérite de FileUpload ainsi qu'un HttpModule qui modifie directement le flux de la réponse http. On peut utiliser le classique contrôle FileUpload, l'utilisation d'un tagmapping configuré au niveau du web.config remplace le classique FileUpload par mon FileUpload.