Partager via


Vue d'ensemble du contrôle serveur Web FileUpload

Mise à jour : novembre 2007

Le contrôle FileUpload permet de fournir aux utilisateurs un moyen d'envoyer un fichier de leur ordinateur vers le serveur.

Cette rubrique contient les sections suivantes :

  • Fonctionnalités

  • Contexte

  • Exemples de code

  • Référence de classe

Fonctionnalités

Vous pouvez utiliser le contrôle FileUpload pour :

  • permettre aux utilisateurs de télécharger des fichiers que vous stockez dans un emplacement spécifique sur le serveur ;

  • limiter la taille du fichier qui peut être téléchargé ;

  • examiner les propriétés d'un fichier téléchargé avant de stocker le fichier.

Retour au début

Contexte

Le contrôle FileUpload permet aux utilisateurs de télécharger des images, des fichiers texte ou d'autres fichiers. Le contrôle FileUpload affiche une zone de texte où les utilisateurs peuvent entrer le nom d'un fichier qu'ils souhaitent télécharger sur le serveur. Le contrôle affiche également un bouton Parcourir qui affiche une boîte de dialogue de navigation de fichier. Celle-ci dépend du système d'exploitation de l'ordinateur de l'utilisateur. Pour des raisons de sécurité, vous ne pouvez pas précharger le nom d'un fichier dans le contrôle FileUpload.

Gestion des fichiers téléchargés

Une fois que les utilisateurs ont sélectionné un fichier à télécharger puis envoyé la page, le fichier est téléchargé dans le cadre de la demande. Tout le fichier est mis en cache dans la mémoire du serveur. Lorsque le téléchargement du fichier est terminé, votre code de page s'exécute.

Vous pouvez accéder au fichier téléchargé sous forme de :

Lorsque votre code s'exécute, vous pouvez examiner les caractéristiques du fichier, à savoir le nom, la taille et le type MIME, puis l'enregistrer. Vous pouvez utiliser le fichier comme un tableau d'octets ou un flux. Par ailleurs, le contrôle FileUpload et l'objet HttpPostedFile prennent en charge une méthode SaveAs permettant d'écrire le fichier sur le disque.

Il n'existe aucune limitation inhérente à l'emplacement où vous pouvez enregistrer les fichiers téléchargés. Toutefois, pour enregistrer le fichier, le processus ASP.NET doit avoir l'autorisation de créer des fichiers dans l'emplacement que vous spécifiez. En outre, votre application peut être configurée de sorte qu'elle exige un chemin absolu (et non un chemin relatif) pour enregistrer le fichier, ce qui constitue une mesure de sécurité. Si l'attribut requireRootedSaveAsPath de l'élément de configuration httpRuntime a la valeur true (valeur par défaut), vous devez fournir un chemin absolu lors de l'enregistrement du fichier téléchargé.

Remarque :

Vous pouvez créer un chemin absolu en fonction de la racine de votre application en utilisant la méthode MapPath de la classe HttpServerUtility et en passant à l'opérateur de tilde (~) qui représente le dossier racine de l'application. Pour plus d'informations, consultez Chemins d'accès aux sites Web ASP.NET.

Le téléchargement du fichier de taille maximale dépend de la valeur du paramètre de configuration MaxRequestLength. Si les utilisateurs essaient de télécharger un fichier qui dépasse la taille maximale autorisée, le téléchargement échoue.

Utilisation du contrôle FileUpload dans des mises à jour de page partielle

Le contrôle FileUpload est conçu pour être utilisé uniquement dans les scénarios de publication et non dans les scénarios de publication (postback) asynchrone pendant le rendu de page partielle. Lorsque vous utilisez un contrôle FileUpload à l'intérieur d'un contrôle UpdatePanel, le fichier doit être téléchargé à l'aide d'un contrôle qui est un objet PostBackTrigger pour le panneau. Les contrôles UpdatePanel sont utilisés pour mettre à jour les zones sélectionnées d'une page au lieu de mettre à jour la page entière par une publication. Pour plus d'informations, consultez Vue d'ensemble du contrôle UpdatePanel et Vue d'ensemble du rendu de page partielle.

Sécurité et contrôle FileUpload

En utilisant le contrôle FileUpload, les utilisateurs peuvent télécharger des fichiers potentiellement malveillants, notamment les fichiers script et les fichiers exécutables. Vous ne pouvez pas limiter en amont les fichiers qu'un utilisateur peut télécharger. Si vous souhaitez limiter les types de fichiers qu'un utilisateur peut télécharger, vous devez examiner les caractéristiques de ceux-ci (par exemple, l'extension et la valeur de la propriété ContentType du fichier) une fois le fichier téléchargé.

Remarque :

Avant que la page ne soit envoyée, vous pouvez utiliser le script client pour examiner le nom de fichier tapé par l'utilisateur dans la zone de texte. Toutefois, bien que la vérification côté client du nom de fichier puisse s'avérer utile, elle ne garantit pas que les utilisateurs ne peuvent pas télécharger un type de fichier non sécurisé, par exemple un fichier exécutable.

Exemples de code

Comment : télécharger des fichiers avec le contrôle serveur Web FileUpload

Retour au début

Référence de classe

Le tableau suivant répertorie les classes relatives au contrôle FileUpload.

Membre

Description

FileUpload

Classe principale du contrôle FileUpload.

Retour au début

Voir aussi

Référence

HtmlInputFile