[ASP.NET]FileUpload et UpdatePanel
Sur un projet j'ai été confronté à un problème quant à l'utilisation d'un FileUpload ASP.NET dans un UpdatePanel.
En effet, pour des raisons de sécurité, le contrôle FileUpload ne fonctionne pas à l'intérieur d'un UpdatePanel.
L'UpdatePanel fait ses requêtes de mise à jour partiel en utilisant l'objet XmlHttpRequest, hors cet objet ne gère pas l'envoi de fichier.
L'upload de fichier nécessite un PostBack complet de la page.
Pour contourner ce problème une solution consiste à créer un PostBackTrigger sur le bouton qui déclenchera l'upload:
<asp:updatepanel runat="server" id="UpdatePanel1">
<contenttemplate>
<asp:FileUpload runat="server" id="Upload1" />
<asp:button runat="server" id="ButtonSubmit" text="Postback" />
</contenttemplate>
<triggers>
<asp:postbacktrigger controlid="ButtonSubmit" />
</triggers>
</asp:updatepanel>
Vous pouvez également spécifier au ScriptManager les contrôles qui déclanche un PostBack complet de la page (dans le code-behind):
ScriptManager.GetCurrent(Page).RegisterPostBackControl(Upload1);
Autre méthode qui fonctionne également : Vous pouvez utiliser une iFrame pour appeler une page d'Upload dans une frame. L'inconvénient c'est que les iFrame ne sont pas XHTML compliant 
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :